设有学生表S(SNO,SN)(SNO为学生号,SN为姓名)和学生选修课程表SC(SNO,CNO,CN,G)(CNO为课程号,CN为课程名,G为成绩),试用SQL语句完成以下操作:
建立一个视图V-SSC(SNO,SN,CNO,CN,G),并按CNO升序排序.
第1题:
第 15~16 题基于以下说明。 设有三个关系:
学生关系S(SN0,SNAME,AGE,SEX)(分别代表学生的学号、姓名、年龄、性别)
学习关系SC(SN0,CNO,GRADE)(分别代表学生的学号、课程编号、成绩)
课程关系C(CN0,CNAME,TEACHER)(分别代表课程的编号、课程名、任课教师)
第15题:下列不能实现与关系代数表达式Πsname(σcname=\'DB\' )相同查询的SQL命令是( )。
A.SELECT SNAME FROM S,SC,C WHERE S.SN0=SC.SNO AND SC.CNO=C.CNO AND CNAME="DB"
B.SELECT SNAME FROM S WHERE SNO IN(SELECT SNO FROM SC,C WHERE SC.CNO=C.CNO AND CNAME="DB")
C.SELECT SNAME FROM S WHERE SNO IN(SELECT SNO FROM SC WHERE CNO IN ( SELECT CNO FROM C WHERE CNAME="DB"))
D.SELECT SNAME FROM S,C WHERE CNAME="DB"
第2题:
对于教学数据库的三个基本表:S(Sno,Sname,Ssex),SC(Sno,Cno,Grade),C(Cno,Cname, Teacher),其中S为学生表,SC为学生选课表,C为课程表,则对于语句:检索至少选修LIU老师所授课课程中一门课程的女生姓名,SQL语句错误的是______。
A) SELECT Sname
FROM S,SC,C
WHERE S.Sno=SC.Sno AND SC.Cno=C.Cno AND Teacher=‘LIU’AND Ssex=‘F’
B) SELECT Sname
FROM S WHERE Ssex=‘F’AND Sno IN
(SELECT Sno
FROM SC
WHERE Cno IN(SELECT Cno FROM C
WHERE Teacher=‘LIU’))
C) SELECT Sname
FROM S WHERE Ssex=‘F’AND EXISTS (SELECT*
FROM SC
WHERE SC.Sno=S.Sno AND EXISTS
(SELECT*
FROM C
WHERE Teacher=‘LIU’))
D) SELECT Sname
FROM S WHERE Ssex=‘F’AND EXISTS(SELECT*
FROM SC
WHERE SC.Sno=S.Sno AND EXISTS
(SELECT*
FROM C
WHERE C.Cno=SC.Cno AND Teacher=‘LIU’))
第3题:
设有关系S(SNO,SNAME,SEX),C(CNO,CNAME),SC(SNO,CNO,GRADE)。其中SNO为学生号,SNAME为学生姓名,SEX为性别,CN0为课程号,CNAME为课程名。要查询选修”计算机\"课的全体女学生姓名的SQL语句是SELECT SNAME FROM S,C,SC WHERE子句。这里WHERE子句的内容是( )。
A.S.SNO=SC.SNO and SEX='女'and CNAME='计算机'
B.S.SNO=SC.SNO and C.CNO=SC.CNO and CNAME='计算机'
C.SEX='女' and CNAME='计算机'
D.S.SNO=SC.SNO and C.CNO=SC.CNO and SEX='女' and CNAME='计算机'
本题涉及三个表的连接查询,需要求的是WHERE后面的连接条件,首先连接S与SC表,连接条件为S.SNO=SC.SNO;然后再连接C表和SC表,连接条件为C.CNO=SC.CNO。这样就可以将三个表连接起来,但是分析题意,同时还要在连接后所形成的表中满足SEX='女'和CNAME='计算机'。通过以上分析,连接是同时满足的关系,故应用'AND'连接。因此,WHERE子句内容应为:S.SNO=SC.SNO and C.CNO:SC.CNO and SEX='女'and CNAME='计算机'。
第4题:
设S为学生关系,Sc为学生选课关系,Sno为学生号,Cno为课程号,执行下面SQL语句查询结果是(30)。Select S. * From S,SC Where S. Sno=Sc. Sno and Sc. Cno='c2'
A.选出选修c2课程的学生信息
B.选出选修c2课程的学生名
C.选出S中学生号与Sc中学生号相等的信息
D.选出S和Sc中的一个关系
第5题:
设S为学生关系,SC为学生选课关系,Sno为学生号,Cno为课程号,执行下面SQL语句的查询结果( )。 SELCET * FROM S,Sc WHERE S .Sno=SC.Sno AND SC.Cno='C2'
A.选出选修C2课程的学生信息
B.选出选修C2课程的学生名
C.选出S中学生号与SC中学生号相等的信息
D.选出S和SC中的一个关系
第6题:
第( 36 ) - ( 37 )题基于学生一选课一课程数据库中的三个基本表:
学生信息表: STUDENT ( sno, sname, sex, age, dept ) 主码为 sno
课程信息表: CDLIRSB ( cno, cname, teacher ) 主码为 cno
学生选课信息表: SC ( sno, cno, grade ) 主码为( sno, cno )
( 36 )“ 查询没有学习成绩的学生的学号和课程号 ” 的 SQL 语句是
A ) SELECT snc, cno FROM SC WHERE grade=NULL
B ) SELECT sno, cno FROM SC WHERE grade IS' '
C ) SELECT sno. cno FROM SC WHERE grade IS NULL
D ) SELECT sno. cno FROM SC WHERE grade =' '
第7题:
对于教学数据库的三个基本表:S(Sno,Sname,Ssex),SC(Sno,Cno,Grade),C(Cno,Cname, Teacher),其中S为学生表,SC为学生选课表,C为课程表,则对于语句:检索至少选修LIU老师所授课课程中一门课程的女生姓名,SQL语句错误的是______。
A.SELECT Sname FROM S,SC,C WHERE S.Sno=SC.Sno AND SC.Cno=C.Cno AND Teacher=‘LIU’AND Ssex=‘F’
B.SELECT Sname FROM S WHERE Ssex=‘F’AND Sno IN (SELECT Sno FROM SC WHERE Cno IN(SELECT Cno FROM C WHERE Teacher=‘LIU’))
C.SELECT Sname FROM S WHERE Ssex=‘F’AND EXISTS (SELECT* FROM SC WHERE SC.Sno=S.Sno AND EXISTS (SELECT*
D.SELECT Sname FROM S WHERE Ssex=‘F’AND EXISTS(SELECT* FROM SC WHERE SC.Sno=S.Sno AND EXISTS (SELECT*
第8题:
设教学数据库中有三个基本表:
学生表 S(SNO,SNAME,AGE,SEX)
选课表 SC(SNO,CNO,GRADE)
课程表 C(CNO,CNAME,TEACHER)
写出“不学C6课程的男学生的学号和姓名(SNO,SNAME)”关系代数表达式。
答案:πSNO,SNAME(σSEX='男'(S)∞(πSNO(SC)- πSNO(σCNO='C6'(SC))))
第9题:
已知学生选课信息表:sc(sno,cno,grade)。查询“至少选修了一门课程,但没有学习成绩的学生学号和课程号”的SQL语句是
A.SELECT sno,cno FROM sc WHERE grade=NULL
B.SELECT sno,cno FROM sc WHERE grade IS‘’
C.SELECT sno,cno FROM sc WHERE grade IS NULL
D.SELECT sno,cno FROM sc WHERE grade=‘’
第10题:
根据SQL标准,查询表student(sno,sname,sex,dept)中所有学生的选修课程数,其中选修记录在表SC(sno,cno,grade)中,两表中sno为关联字段。下面哪条语句合适?()
A select sno,count(cno) from SC
B select sno,count(cno) from student
C select a.sno,count(cno) from student a left outer join SC
D select a.sno,count(cno) from SC left outer join student a