某学校的学生成绩管理数据库的关系模式如下;
S(SNO,SNAME,SEX,AGE,DEPT);
C(CNO,CNAME);
SC(SNO,CNO,SCORE)
其中,S表示学生表。它的各字段以此为学号,姓名、性别、年龄和所在学院;C表示课程表,它的各字段依次为课程号、课程名;SC表示成绩表,它的各字段依次为学号、课程号和分数。
使用SQL语句,查询“计算机学院”所有“男生”的学号,姓名和年龄。
使用SQL语句,查询选修“计算机网络”课程的学生姓名和分数。
使用SQL语句,查询所有课程的课程号以及最高分。
SELECT CNO,MAX(SCORE) FROM SC GROUP BY CNO
请帮忙给出每个问题的正确答案和分析,谢谢!
第1题:
设教学数据库中有三个基本表:
学生表 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))))
第2题:
第 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"
第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题:
第(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="
第5题:
第( 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 =' '
第6题:
设有关系模式SC(Sno, Sname, Sex, Birthday, Cno, Cname, Grade, Tno, Tname)满足函数 依赖集:{Sno→Sname, Sno→Sex, Sno→Birthday, Cno→Cname,(Sno, Cno)→Grade, Tno→Tname}.SC的主码和属性集(Sno, Tno)的闭包分别是
A.(Sno,Tno)和{Cno,Cname,Grade,Tno,Tname}
B.(Sno, Cno,Tno) 和{Sno, Sname, Sex, Birthday, Cno}
C.(Sno, Cno)和{Sno, Sname, Sex, Birthday, Cno, Cname, Grade}
D.(Sno, Cno,Tno)和{Sno, Sname, Sex, Birthday, Tno, Tname}
第7题:
A. S
B. C,SC
C. S,SC
D. S,C,SC
第8题:
第(37)-(38)题基于学生-课程数据库中的三个基本表: 学生信息表:s(sno, sname, sex, age, dept) 主码为sno 课程信息表:c(cno, cname, teacher) 主码为cno 学生选课信息表:sc(sno, cno, grade) 主码为(sno, cno) \"从学生选课信息表中找出无成绩的元组\"的SQL语句是
A.SELECT * FROM sc WHERE grade=NULL
B.SELECT * FROM sc WHERE grade IS ' '
C.SELECT * FROM sc WHERE grade IS NULL
D.SELECT * FROM sc WHERE grade =' '
第9题:
设学生关系S(sno, sname, sex, dept)的主码为sno,学生选课关系SC(sno, cno, grade)的主码为(sno, cno),则关系模式R(sno, cno, sex, dept, grade)最高属于( )。
A.1NF
B.2NF
C.3NF
D.BCNF
第10题:
设学生关系S(sno, sname, sex, dept)的主码为sno,学生选课关系SC(sno, eno, grade)的主码为(sno, cno),则关系模式R(sno, eno, sex, dept, grade)最高属于
A.1NF
B.2NF
C.3NF
D.BCNF