有如下三个关系模式: 学生:S(S#,SN,AGE,SEX) 属性含义依次为:学号,姓名,年龄,性别 课程:C(C#,CN,TEACHER) 属性含义依次为:课程号,课程名,教师 选课:SC(S#,C#,SCORE) 属性含义依次为:学号,课程号,成绩 用SQL语句完成以下题查询所有女同学的学号和姓名
第1题:
假定有三个关系,学生关系S、课程关系C和学生选课关系SC,它们的结构如下: S(S#,SN,Sex,Age,Dept),C(C#,CN),SC(S#,C#,Grade)。其中,S#为学生号,SN为姓名,Sex为性别,Age为年龄,Dept为系别,C#为课程号,CN为课程名,Grade为成绩。检索选修课程“C2”的学生中成绩最高的学生的学号,正确的SQL.语句是______。
A.SELECT S#FROM SC WHERE C#="C2" AND Grade IN (SELECT Grade FROM SC WHERE C#="C2")
B.SELECT S# FROM SC WHERE C#="C2" AND Grade>= (SELECT Grade FROM SC WHERE C#="C2")
C.SELECT S# FROM SC WHERE C#="C2" AND Grade>=ALL (SELECT Grade FROM SC WHERE C#="C2")
D.SELECT S# FROM SC WHERE C#="C2" AND Gtade NOT IN (SELECT Grade FROM SC WHERE C#="C2")
第2题:
第3题:
(一)编写SQL语句
以下各小题题基于教学数据库的三个基本表
学生 S(S#,SNAME,AGE,SEX)
学习 SC(S#,C#,GRADE)
课程 C(C#,CNAME,TEACHER)
1. 试用元组表达式和关系代数表达式表示下列查询语句:检索年龄小于23岁的男同学的姓名和学号。
2. 试用SQL的查询语句表达下列查询: 检索"王兰"同学不学的课程的课程号。
3. 试用SQL的查询语句表达下列查询: 检索全部学生都选修的课程的课程号与课程名。
4.试用SQL更新语句表达以下更新操作:把低于总平均成绩的女同学成绩提5%。
答案:
元组表达式:{t|(?u)(S(u)∧u[3]<23∧u[4]='男'∧t[1]=u[1]∧t[2]=u[2])}
关系代数表达式:πS#,SNAME(σAGE<23∧SEX='男'(S))
select C# from C where C# not in(select C# from SC where S# in(select S# from S where SNAME='王兰'))
select C#,CNAME from C where not exists(select * from S where not exists(select * from SC where SC.S#=S.S# and SC.C#=C.C#))
update SC set GRADE=GRADE*1.05 where GRADE<(select AVG(GRADE) from SC) and S# in(select S# from S where SEX='女')
第4题:
S(S#,SN,SEX,AGE,DEPT) C(C#,CN) SC(S#,C#,GRADE)其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号, CN为课程名,GRADE为成绩。检索所有比“王华”年龄大的学生姓名、年龄和性别。正确的SELECT语句是______。
A.SELECT SN,AGE,SEX FROM S WHERE AGE>(SELECT AGE FROM S WHERE SN='王华')
B.SELECT SN, AGE, SEX FROM S WHERE SN='王华'
C.SELECT SN,AGE,SEX FROM S WHERE AGE>(SELECT AGE WHERE SN='王华')
D.SELECT SN,AGE,SEX FROM S WHERE AGE>王华AGE
第5题:
第6题:
设有学生表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.学号
第7题:
第8题:
●已知基本表:学生(学号,姓名,性别,年龄,系名)
选课(学号,课程号,成绩)
要检索所有比"王华"年龄大的学生姓名、年龄和性别,正确的语句是 (25) ,要检索学生姓名及其所选修课程的课程号和成绩,正确的语句是 (26) 。
(25) A.SELECT姓名,年龄,性别
FROM学生
WHERE AGE>(SELECT 年龄
FROM 学生
WHERE 姓名 ="王华")
B.SELECT姓名,年龄,性别
FROM学生
WHERE姓名="王华"
C.SELECT姓名,年龄,性别
FROM学生
WHERE AGE>(SELECT年龄
WHERE姓名="王华")
D.SELECT姓名,年龄,性别
FROM学生
WHERE AGE>"王华"
(26) A.SELECT 学生.姓名,选课.课程号,选课.成绩
FROM学生
WHERE学生 学号=课程.学号
B.SELECT学生.姓名,选课.课程号,选课.成绩
FROM选课
WHERE学生.学号=课程.学号
C.SELECT学生.姓名,选课.课程号,选课.成绩
FROM学生,选课
WHERE学生.学号=课程.学号
D.SELECT学生.姓名,选课.课程号,选课.成绩
FROM学生.学号
第9题:
设数据库中有四个关系
课程关系C(C,CNAME,TNAME)
学生关系S(S,SNAME,AGE,SEX)
选课关系SC(S,C,SCORE)
其中课程关系中各属性分别表示为课程号,课程名,以及相应的课程任课老师名;学生关系中各属性分别为学号,学生姓名,年龄以及性别;用SQL语句完成下面的各个问题:
①创建学生关系S,其中S为主码,SEX只能取F和M两个值,其他的属性不为空
②检索年龄小于17岁的女生的学号和姓名
③检索WANG同学不学的课程的课程
第10题:
S(S#,sN,SEX,AGE,DEPT)
C(C#,CN)
SC(S#,C#,GRADE)其中;S#为学号,SN为姓名,SEX为性别,AGE为年龄,.DEPT为系别,C#为课程号, CIg为课程名,GRADE为成绩。检索所有比“王华”年龄大的学生姓名、年龄和性别正确的SELECT语句是 ______。
A.SELECT SN,AGE,SEX FROM S WHERE AGE>(SELECT AGE FROM:S WHERE SN='王华')
B.SELECT SN,AGE,SEX FROM S WHERE SN='王华'。
C.SELECT SN,AGE,SEX FROM S WHERE AGE>(SELECT AGE WHERE SN='王华')
D.SELECT SN,AGE,SEX FROM S WHERE AGE>王华 AGE