第1题:
设有学生表S(学号,姓名,性别,年龄)、课程表C(课程号,课程名,学分)和学生选课表SC(学号,课程号,成绩),检索学号、姓名和学生所选课程的课程名和成绩,正确的SQL命令是______。
A.SELECT 学号,姓名,课程名,成绩 FROM S,SC,C WHERE S.学号=SC.学号 AND SC.学号=C.学号
B.SELECT 学号,姓名,课程名,成绩 FROM(S JOIN SC ON S.学号=SC.学号) JOIN C ON SC.课程号=C.课程号
C.SELECT S.学号,姓名,课程名,成绩 FROM S JOIN SC JOIN C ON S.学号=SC.学号 ON SC.课程号=C.课程号
D.SELECT S.学号,姓名,课程名,成绩 FROM S JOIN SC JOIN C ON SC.课程号=C.课程号 ON S.学号=SC.学号
第2题:
设有学生表S(学号,姓名,性别,年龄)、课程表 (课程号。课程名,学分)和学生选课表SC(学号,课程号,绩).检索学号、姓名和学生所选课程的课程名和成绩,正确的SQL语句是( )。
A.SELECT学号,姓名,课程名,成绩FROM S,SC,CWHERE S.学号=SC.学号AND SC.学号=C.学号
B.SELECT学号,姓名,课程名,成绩 FROM(S JOIN SC ON S.学号=SC.学号)JOIN C0N SC.课程号=C.课程号
C.SELECT S.学号,姓名,课程名,成绩 FROM S JOIN SC JOIN C ON S.学号=SC.学号 ON SC.课程号=C.课程号
D.SELECT S.学号,姓名,课程名,成绩 FROM S JOIN SC JOIN c ON SC.课程号=C.课程 号ON S.学号=SC.学号
第3题:
设教学数据库中有4个关系:教师关系T(T,TNAME,TITLE)课程关系C(C,CNAME,T)学生关系S(S,SNAME,AGE,SEX)选课关系SC(S,C,SCORE)试用关系代数表达式表示各个查询语句。(1)检索年龄小于17岁的女学生的学号和姓名。(2)检索男学生所学课程的课程号和课程名。(3)检索男学生所学课程的任课老师的职工号和姓名。(4)检索至少选修了两门课程的学生学号。(5)检索至少有学号为S2和S4学生选修的课程的课程号。(6)检索WANG同学不学的课程的课程号。(7)检索全部学生都选修的课程的课程号与课程名。(8)检索选修课程包含LIU老师所授全部课程的学生学号。
①检索年龄小于17岁的女学生的学号和姓名。
SELECT S#.SNAME FROM S
WHERE AGE<17 AND SEX=’F’
②检索男学生所学课程的课程号和课程名。
SELECT C.C#,CNAME (连接查询方式) FROM S,SC,C
WHERE S.S#=SC.S# AND SC.C#=C.C# AND SEX=’M’;
③检索男学生所学课程的任课老师的工号和姓名。
SELECT T.T#, TNAME FROM S,SC,C,T
WHERE S.S#=SC.S# AND SC.C#=C.C# AND C.T#=T.T# AND SEX=’M’;
④检索至少选修两门课程的学生学号。
SELECT DISTINCT X.S# FROM SC AS X, SC AS Y
WHERE X.S#=Y.S# AND X.C#!=Y.C#;
⑤检索至少有学号为S2和S4的学生选修的课程的课程号。
SELECT DISTINCT X.C# FROM SC AS X, SC AS Y
WHERE X.S#=’S2’ AND Y.S#=’S4’ AND X.C#=Y.C#;
⑥检索WANG同学不学的课程的课程号。
SELECT C# FROM C
WHERE NOT EXISTS (SELECT * FROM S, SC
WHERE S.S#=SC.S# AND SC.C#=C.C# AND SNAME=’WANG’);
⑦检索全部学生都选修的课程的课程号与课程名。
SELECT C#,CNAME FROM C
WHERE NOT EXISTS (SELECT * FROM S
WHERE NOT EXISTS (SELECT * FROM SC
WHERE S#=S.S# AND C#=C.C#));
⑧检索选修课程包含LIU老师所授全部课程的学生学号。
法一:
SELECT DISTINCT S# FROM SC AS X
WHERE NOT EXISTS (SELECT * FROM C,T
WHERE C.T#=T.T# AND TNAME=’LIU’
AND NOT EXISTS (SELECT{
FROM SC AS Y
WHERE Y.S#=X.S# AND Y.C#=C.C#));
法二:
SELECT DISTINCT S# FROM SC X
WHERE NOT EXISTS ((SELECT C# FROM C,T
WHERE C.T#=T.T# AND TNAME=‘LIU’) EXCEPT
(SELECT C# FROM SC Y WHERE Y.S#=X.S#));
第4题:
设学生表S、课程表C和学生选课表SC的结构如下:
S(学号,姓名,年龄,系别)
C(课程号,课程名)
SC(学号,课程号,成绩)
查询学生姓名及所选修课程的课程号和成绩,实现此功能的SELECT语句是______。
A.SELECTS.姓名,SC课程号,SC成绩FROM S WHERE S.学号=SC.学号
B.SELECTS.姓名,SC课程号,SC成绩FROM SC WHERE S.学号=SC.成绩
C.SELECTS.姓名,SC课程号,SC成绩FROMS,SC WHERE S.学号=SC.学号
D.SELECTS.姓名,SC课程号,SC成绩FROM S,SC
第5题:
现有表:s(学号,姓名,性别,年龄),c(课程号,课程名,学分),SC(学号,课程号,成绩)。检索学号、姓名和学生所选课程的课程名和成绩,正确的SQL命令是( )。
A. SELECT学号,姓名,课程名,成绩FROM S,SC,C; WHERE S.学号=SC.学号AND SC.课程号=C.课程号
B. SELECT学号,姓名,课程名,成绩; FROM(S JOIN SC ON S.学号=SC.学号)JOIN C ON SC.课程号=C.课程号
C. SELECT S.学号,姓名,课程名,成绩; FROM S JOIN SC JOIN C ON S.学号=SC.学号ON SC.课程号=C.课程号
D. SELECT S.学号,姓名,课程名,成绩; FROM S JOIN SC JOIN C ON SC.课程号=C.课程号0N S.学号=SC.学号
第6题:
已知表S(学号,姓名,年龄)
SC(学号,课程号,成绩)
C(课程号,课程名,教师名)
试用SQL查询语句表达下列对教学数据库中的三个基本表S、SC、C的查询:
(1)统计有学生选修的课程门数.
(2)求选修C4课程的学生的平均年龄.
(3)求王平老师所授课程的每门课程的学生平均成绩.
(4)统计每门课程的学生选修人数(超过10人的课程才统计).要求输出课程号和选修人数.
(5)查询姓名以WANG开头的所有学生的姓名和年龄.
第7题:
现有某高校的选修课记录(SC):学号、姓名、课程名称、成绩,要查询没有选修课成绩的学生和课程,正确的SQL语句是( )。
A. SELECT学号,课程号FROM sc WHERE成绩=””
B. SELECT学号,课程号FROM sc WHERE成绩=NULL
C. SELECT学号,课程号FROM SC WHERE成绩IS NULL
D. SELECT学号,课程号FROM SC WHERE成绩
第8题:
设有s(学号,姓名,性别)和sc(学号,课程号,成绩)两个表,下面SQL的SELECT语句检索选修的每门课程的成绩都高于或等于85分的学生的学号、姓名和性别。SELECT 学号,姓名,性别 FROM sWHERE ___ (SELECT * FROM sc WHERE sc.学号=s.学号 AND 成绩<85)
第9题:
基于学生表S和学生选课表SC两个数据库表,它们的结构如下: S(学号,姓名,性别,年龄),其中学号、姓名和性别为C型字段,年龄为N型字段; SC(学号,课程号,成绩),其中学号和课程号为C型字段,成绩为N型字段。 查询同时选修课程号分别为2001和2005课程的学生的学号,正确的命令是( )。
A. SELECT学号FROM SC WHERE课程号='2001'AND学号IN(SELECT学号FROM SC WHERE课程号='2005’)
B. SELECT学号FROM SC WHERE课程号='2001'AND学号=(SELECT学号FROM SC WHERE课程号='2005’)
C. SELECT学号FROM SC WHERE课程号='2001'AND课程号='2005'
D. SELECT学号FROM SC WHERE课程号='2001'OR'2005'
第10题:
给定学生S(学号,姓名,年龄,入学时间,联系方式)和选课SC(学号,课程号,成绩)关系,若要查询选修了1号课程的学生学号、姓名和成绩,则该查询与关系代数表达式 (8) 等价。
A.A
B.B
C.C
D.D