1、第5章习题与参照答案 一.单项选取题 1.当关系R和S进行连接操作时,如果R中元组不满足连接条件,在连接成果中也会将这些记录保存下来操作是(A)。 A.左外连接 B.右外连接 C.内连接 D.自连接 2.下列聚合函数中,不忽视空值是(D)。 A.SUM(列名) B.MAX(列名) C.AVG(列名) D.COUNT(*) 3.下列查询语句中,错误是(B)。 A.SELECT Sno,COUNT(*) FROM SC GROUP BY Sno B.SELECT Sno FROM SC GROUP BY Sno WH
2、ERE COUNT(*) > 3 C.SELECT Sno FROM SC GROUP BY Sno HAVING COUNT(*) > 3 D.SELECT Sno FROM SC GROUP BY Sno 4.现要运用Student表查询年龄最小学生姓名和年龄。下列实现此功能查询语句中,对的是(D)。 A.SELECT Sname,MIN(Sage) FROM Student B.SELECT Sname,Sage FROM Student WHERE Sage = MIN(Sage) C.SELECT TOP 1 Sname,Sage FROM Stu
3、dent D.SELECT TOP 1 Sname,Sage FROM Student ORDER BY Sage 5.设SC表中记录成绩列为:Grade,类型为int。若在查询成绩时,但愿将成绩按‘优’、‘良’、‘中’、‘及格’和‘不及格’形式显示,对的Case函数是(C)。 A.Case Grade When 90~100THEN'优' When 80~89THEN'良' When 70~79THEN'中' When 60~69THEN'及格' Else'不及格' End B.Case When Gradebetween
4、 90 and 100THENGrade = '优' When Gradebetween 80 and 89THENGrade = '良' When Gradebetween 70 and 79THENGrade = '中' When Gradebetween 60 and 69THENGrade = '及格' ElseGrade = '不及格' End C.Case When Gradebetween 90 and 100THEN'优' When Gradebetween 80 and 89THEN'良' When Gradebetwe
5、en 70 and 79THEN'中' When Gradebetween 60 and 69THEN'及格' Else'不及格' End D.Case Grade When 90~100THEN Grade = '优' When 80~89THEN Grade = '良' When 70~79THEN Grade = '中' When 60~69THEN Grade = '及格' ElseGrade = '不及格' End 6.下列SQL语句中,用于修改表数据语句是(C)。 A.ALTER B.SELECT
6、 C.UPDATE D.INSERT 7.设有Teachers表,该表定义如下: CREATE TABLE Teachers( Tno CHAR(8) PRIMARY KEY, Tname VARCHAR(10) NOT NULL, Age TINYINT CHECK(Age BETWEEN 25 AND 65) ) 下列插入语句中,不能对的执行是(D)。 A.INSERT INTO Teachers VALUES('T100','张宏',NULL) B.INSERT INTO Teachers(Tno,Tname,Age) VALUES(
7、'T100','张宏',30) C.INSERT INTO Teachers(Tno,Tname) VALUES('T100','张宏') D.INSERT INTO Teachers VALUES('T100','张宏') 8.设数据库中已有教材中Student(Sno,Sname,Ssex,Sage,Sdept)、Course(Cno,Cname,Credit,Semster)和SC(Sno,Cno,Grade)表。现要查询学生选第2学期开设课程状况,只需列出学号、姓名、所在系和所选课程号。该查询涉及到表是(D)。 A.仅Student表 B.仅Student
8、和SC表 C.仅Student和Course表 D.Student、SC和Course表 9.下列删除计算机系学生(在student表中)修课记录(在SC表中)语句,对的是(B)。 A.DELETEFROM SC JOIN Student b ON S.Sno = b.Sno WHERE Sdept = '计算机系' B.DELETE FROM SC FROM SC JOIN Student b ON SC.Sno = b.Sno WHERE Sdept = '计算机系' C.DELETE FROM StudentWHERE Sdept = '计
9、算机系' D.DELETE FROM SC WHERE Sdept = '计算机系' 二.判断题 1.SELECT * FROM Student WHERE Sname LIKE'张_'语句中'张_' 用于查找姓张学生。(╳) 2.SELECT * FROM Student WHERE Sname LIKE'[张李刘]%' 语句可以查找姓张、李、刘学生。(√ ) 3.SELECT COUNT(DISTINCT Sno) FROM SC 语句用于记录学生总人数。(╳) 4.HAVING子句用于对分组后记录成果再进行过滤,它用于组而不是对单个记录。(√ )
10、 5.SELECT * FROM Student INNER JOINSC ON Student.Sno = SC.Sno语句可将Student与 SC连接起来。(√) 三.简答题 1.在聚合函数中,哪个函数在记录时不考虑NULL。 答:COUNT(*) 2.在LIKE运算符中“%”作用是什么? 答:匹配0个或各种字符。 3.WHERE Age BETWEEN 20 AND 30子句,查找Age范畴是多少? 答:Age不不大于等于20并且不大于等于30 4.WHERE Sdept NOT IN ('CS','IS','MA'),查找数据是什
11、么? 答:查找'CS','IS','MA'三个系之外其她系。 5.自连接与普通内连接重要区别是什么? 答:自连接中进行连接操作表在物理上是一张表,而普通内连接进行连接表在物理上是两张表。 6.外连接与内连接重要区别是什么? 答:进行外连接两个表中,可以有一张表不满足连接条件,而进行内连接两个表必要都满足连接条件。 7.有关子查询与嵌套子查询在执行方面重要区别是什么? 答:有关子查询执行过程是先外后内,而嵌套子查询执行过程是先内后外。并且有关子查询中必要有与外层查询关联,而嵌套子查询中,内、外层查询之间没关于联关系。 8.对记录成果筛选应当使用哪个子句完毕? 答:HAVING子句 9.在排序子句中,排序根据列先后顺序与否重要?ORDER BY C1,C2子句对数据排序顺序是什么? 答:重要,系统会按列先后顺序进行排序。 先按C1列进行排序,在C1列值相似时再按C2列进行排序。 10.TOP 子句作用是什么? 答:在查询成果产生后,提取成果前若干行数据。






