单选题 [程序说明] 本大题使用的数据表如下:
“歌手”表
歌手号 姓名
1001 王容
2001 徐巍
3001 周杰
4001 林俊伦
“评分”表
歌手号 分数 评委号
1001 9.8 101
1001 9.6 102
1001 9.7 103
1001 9.8 104
单选题 为“歌手”表增加一个字段“最后得分”的SQL语句是______。
【正确答案】 A
【答案解析】[解析] 修改字段属性的命令的语法格式是:
ALTER TABLE TableName1 ALTER FieldName2 FieldType[nFieldWidth]
其中:TableName1是数据表名。FieldName2是数据表中所要修改的字段名。FieldType[nFieldWidth]用来说明修改后的字段的类型和宽度。从4个候选项中可以看出,只有选项A是正确的。选项C和D关键字CHANGE有误,而选项B用来指定表的短语DBF错误,所以这3个选项均为错误答案。
单选题 插入一条记录到“评分”表中,歌手号、分数和评委号分别是“1001”、9.9和“105”,正确的SQL语句是______。
【正确答案】 C
【答案解析】[解析] 使用SQL语言向表中插入数据的命令是INSERT INTO,命令格式如下:
INSERT INTO <表名>[(字段名1[,字段名2,…])VALUES(表式1[,表达式2,…])或INSERT INTO<表名>FROM ARRAY<数组名>| FROM MEMVAR
作用是在表尾插入一条记录。而在题的4个选项中:选项A的顺序不正确,选项B则使用了错误的关键字TO,选项D除了顺序不正确之外,还使用了错误的关键字TO,只有选项C为正确答案。
单选题 假设每个歌手的“最后得分”的计算方法是:去掉一个最高分和一个最低分,取剩下分数的平均分。根据“评分”表求每个歌手的“最后得分”并存储于表TEMP中,表TEMP中有两个字段:“歌手号”和“最后得分”,并且按最后得分降序顺序,生成表TEMP的SQL语句是:______。
【正确答案】 D
【答案解析】[解析] 在此SQL语句中,首先要根据“歌手号”分组计算出每个歌手的总成绩,然后去掉该歌手的最高分及最低分,并且根据评委人数(减去两个去掉分数的评委数量)来计算平均分,将结果保存在表TEMP中,并按照“最后得分”的降序排列。在此题的4个选项中,选项A及选项B在计算歌手总分数时使用了错误的函数COUNT(该函数用来计算记录数量),并在计算评委人数时使用了错误的函数SUM(汇总函数,应当用来计算歌手的总分),所以不正确。而选项C虽然使用了正确的函数,但用来指定分组的GROUP BY子句后面错误地使用了“评委号”字段(应当使用“歌手号”字段),所以也不正确。选项D正确表达了题意,所以为正确答案。
单选题 与“SEI*ECT*FROM歌手WHERE NOT(最后得分>9.00 OR最后得分<8.00)”等价的语句是______。
【正确答案】 B
【答案解析】[解析] 题干中SELECT语句的意义为:选择出“歌手”表中所有“最后得分”字段中值不大于9.00(包括9.00)及不小于8.00(包括8.00)记录的所有字段,由此题意我们可以看出:选项C中SQL语句的意义为选出“歌手”表中所有“最后得分”字段值大于9.00或小于8.00的记录,与题意不符。选项D中SQL语句的意义为选出“歌手”表中所有“最后得分”字段值小于等于9.00或大于等于8.00的记录(是数据表中的全部记录),与题意不符。选项A有一定的迷惑性,BETWEEN…AND…表示查询的条件值是在什么范围内的时候用,当BETWEEN作取值范围限定时,包括限定条件的两个端点值,所以考生很容易犯错误,使用BETWEEN…AND…的两个限定值应当遵循从小到大的原则,而此题正好相反,所以不可能查询出结果,故也为错误答案。选项B能够正确体现题干中SQL语句的意义,所以为正确答案。
单选题 为“评分”表的“分数”字段添加有效性规则:“分数必须大于等于0并且小于等于10”,正确的SQL语句是______。
【正确答案】 B
【答案解析】[解析] 可以使用命令ALTER TABLE来实现对表的字段进行有效性设置,其格式为:
ALTER TABLE<表名>ALTER<字段>SET CHECK<表达式>
选项A和选项D错误在于使用了错误的关键字CHANGE。选项B正确。选项C缺少子句关键字SET。