设有关系S(SNO,SNAME,SEX),C(CNO,CNAME),SC(SNO,CNO)。其中SNO为学号,SNAME为学生姓名,SEX为性别,CNO为课程号,CNAME为课程名。要查询选修“计算机”课的全体女学生姓名的SQL语句是SELECTSnameFROMS,SC,C WHERE子句。这里WHERE子句的内容是A.s.sno=sc.sno ANDSex=‘女’ANDCname=‘计算机’B.s.sno=sc.sno ANDC.cno=sc.cno ANDCname=‘计算机’C.Sex=‘女’AN

题目

设有关系S(SNO,SNAME,SEX),C(CNO,CNAME),SC(SNO,CNO)。其中SNO为学号,SNAME为学生姓名,SEX为性别,CNO为课程号,CNAME为课程名。要查询选修“计算机”课的全体女学生姓名的SQL语句是SELECTSnameFROMS,SC,C WHERE子句。这里WHERE子句的内容是

A.s.sno=sc.sno ANDSex=‘女’ANDCname=‘计算机’

B.s.sno=sc.sno ANDC.cno=sc.cno ANDCname=‘计算机’

C.Sex=‘女’ANDCname=‘计算机’

D.s.sno=sc.sno ANDC.cno=sc.cno ANDSex=‘女’ANDCname=‘计算机’

参考答案和解析
正确答案:D
解析:用SQL的SELECT语句完成查询操作时,首先要分析查询结果和查询条件涉及的属性都来自于哪些关系,如果涉及到两个或两个以上的关系,则可以采用自然连接或者子查询来完成。另外,如果涉及到的两个关系没有相同的属性,不能直接进行自然连接,就需要引入第3个关系并与两个关系进行自然连接。本题中,查询选修“计算机”课的全体女学生姓名的操作中涉及到的属性有SNAME、SEX、CNAME,分别来自关系S和C,但S和C这两个关系没有相同的属性,所以还要引入关系SC,分别与关系S和C进行自然连接。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第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"


正确答案:D
用自然连接和子查询均能正确地表达题目中的关系代数表达式,选项D中没有自然连接的条件,所以是错误的。

第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’))


正确答案:C
    (22) [答案] C

第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='计算机'


正确答案:D

 本题涉及三个表的连接查询,需要求的是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(SNO,SNAME,AGE,SEX)SC(SNO,CNO,GRADE)C(CNO,CNAME,TEACHER)查询语句“查询学习全部课程的学生姓名”可用____关系代数表达式表达

A、ΠSNAME(S⋈SC⋈C)

B、ΠSNAME(C⋈(ΠSNO,CNO(SC)÷ΠSNO(S)))

C、ΠSNAME(S⋈(ΠSNO,CNO(SC)÷ΠCNO(C)))

D、以上均不是


参考答案:C

第5题:

第(38)~(40) 题基于学生一课程数据库中的3个基本表:

学生信息表:s(sno,sname,sex,age,dept)主码为sno

课程信息表:c(cno,cname,teacher)主码为cno

学生选课信息表:sc(sno,cno,grade)主码为(sno,cno)

实现“从学生信息表中找出性别为女的学生姓名”的SQL语句是

A.SELECT * FROM s

B.SELECT * FROM s WHERE sex='女'

C.SELECT sname FROM s WHERE sex='女'

D.SELECT * FROM s WHERE grade="


正确答案:C

第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 =' '


正确答案:C

第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*


正确答案:C

第8题:

(40)查找学生姓名及其所选修课程号和成绩,正确的 SQL 语句是

A)SELECT sname FROM student, SELECT cno,grade FROM sc WHERE student.sno =sc.sno

B) FROM sname,cno,grade FROM student,course WHERE student.sno =course.cno

C) SELECT sname ,canme,grade FROM student,course,sc WHERE student.sno =sc.sno and sc.c

no=course.cno

D) SELECT sname ,cno,grade FROM student,sc WHERE student.sno =sc.sno


正确答案:C

(40)【答案】C)
【解析】题意中要求查找学生姓名。课程号的成绩。这一个属性可以查找两个关系表
student 和 se,通过条件 student,so=sc.so 进行连接。

第9题:

有关系S(s#,SNAME,SEX),c(C}},CNAME),SC(S#,C#)。其中S#为学生号,SNAME为学生姓名,SEX为性别,c#为课程号,CNAME为课程名。要查询选修“计算机”课的全体女学生姓名的SQL语句是:SELECq’SNAME FROM S,C,SC WHERE——。

A.S.S#=SC.S#and SEX=“女”and CNAME=“计算机”

B.s.S#=SC.S#AND C.C#=SC.C#and CNAME=“计算机”

C.SEX=“女”and CNAME=“计算机”

D.s.S#=SC.S#and C.C#=SC.C#and SEX=“女”and CNAME=“计算机”


正确答案:D
解析:WHERE子句用于指定数据的选择条件。要查询选修“计算机”课的全体女学生姓名,则必须把所有的查询条件列出来。条件有:(1)选修了“计算机”课,CNAME=“计算机”;(2)女学生。s.s#=SC.s撑andC.C#=SC.C#and SEX=“女”。

第10题:

在“学生—选课—课程”数据库中的三个关系如下:

S(SNO,SNAME,SEX,AGE),

SC(SNO,CNO,GRADE),

C(CNO,CNAME,TEACHER)。

查找选修“数据库技术”这门课的学生的学生姓名和成绩。若使用连接查询的SQL语句是:SELECT SNAME,GRADE FROM S,SC,C WHERE子句。其中的WHERE子句应该是A)CNAME=′数据库技术′AND S.SNO=SC.SNO AND SC.CNO=C.CNOB)CNAME=′数据库技术′AND S.SNO=SC.SNO AND SC.CNO=CNOC)CNAME=数据库技术 AND S.SNO=SC.SNO AND SC.CNO=C.CNOD)CNAME=′数据库技术′AND S.SNO=SC.SNO

A.CNAME=′数据库技术′AND S.SNO=SC.SNO AND SC.CNO=C.CNO

B.CNAME=′数据库技术′AND S.SNO=SC.SNO AND SC.CNO=CNO

C.CNAME=数据库技术 AND S.SNO=SC.SNO AND SC.CNO=C.CNO

D.CNAME=′数据库技术′AND S.SNO=SC.SNO


正确答案:A
解析:选项B中SC.CNO=CNO后面的CNO指代不确切,如果两个表连接时,两个表有相同的属性名,一定要注明当前操作的哪个表。选项C中“数据库技术”没有加引号,“数据库技术”在此是一个字符串,而不是一个变量,要加引号,如果是数字类型就可不必要了。选项D中没有对两个表的连接限制。

更多相关问题