- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
设教学数据库 Education 有三个关系:
学生关系 S(SNO,SNAME,AGE,SEX,SDEPT);学习关系 SC(SNO,
CNO,GRADE);课程关系 C(CNO, CNAME,CDEPT,TNAME)
查询问题:
1)检索计算机系的全体学生的学号,姓名和性别;
2)检索学习课程号为 C2 的学生学号与姓名;
3)检索选修课程名为“ DS”的学生学号与姓名;
4)检索选修课程号为 C2 或 C4 的学生学号;
5)检索至少选修课程号为 C2 和 C4 的学生学号;
6)检索不学 C2 课的学生姓名和年龄;
7)检索学习全部课程的学生姓名;
8)查询所学课程包含学生 S3 所学课程的学生学号。
1)检索计算机系的全体学生的学号,姓名和性别;
SELECT Sno, Sname,Sex
FROM S
WHERE Sdept =’ CS’;
(2)检索学习课程号为
C2 的学生学号与姓名;
1.SELECT Sno ,Sname
2.SELECT S.Sno ,Sname
FROM S
FROM S ,SC
WHERE Sno IN
WHERE S.Sno=SC.Sno
( SELECT Sno
AND SC.Cno= ‘ C2’ ;
FROM SC
WHERE Cno=‘ C2’)
( 3)检索选修课程名为“ DS”的学生学号与姓名
本查询涉及到学号、姓名和课程名三个属性,分别存放在
S
和 C 表中,但 S 和 C 表没有直接联系,必须通过
SC表建立它们
二者的联系。 C → SC
→ S
基本思路:
1)首先在 C 表中找出“ DS”课程的课程号 Cno;
2)然后在 SC表中找出 Cno等于第一步给出的 Cno 集合中的某个元素 Cno;
3)最后在 S 关系中选出 Sno 等于第二步中 Sno 集合中某个元素的元组,取出 Sno 和 Sname送入结果表列。
SELECT Sno, Sname
FROM S
WHERE Sno IN
SELECT Sno
FROM SC WHERE Cno IN
SELECT Cno
FROM C
WHERE Cname= ‘DS’));
(4)检索选修课程号为 C2 或 C4 的学生学号;
SELECT Sno
FROM SC
WHERE Cno=‘C2’ OR Cno= ‘ C4’;
( 5)检索至少选修课程号为 C2 和 C4 的学生学号;
SELECT Sno
FROM SC X, SC Y
WHERE X.Sno=Y.Sno AND X.Cno= ‘C2’ AND Y.Cno=‘ C4’ ;
( 6)检索不学 C2 课的学生姓名和年龄;
1.SELECT Sname
2.SELECT Sname,Sage
FROM S
FROM S
WHERE Sno NOT IN
WHERE NOT EXISTS
( SELECT Sno
( SELECT *
FROM SC
FROM SC
WHERE Cno= ‘C2’) ;
WHERE SC.Sno=S.Sno
AND Cno= ‘ C2’ ) ;
( 7)检索学习全部课程的学生姓名;
在表 S 中找学生,要求这个学生学了全部课程。换言之,在
S 表
中找学生,在 C中不存在一门课程,这个学生没有学。
SELECT Sname
FROM S
WHERE NOT EXISTS
SELECT * FROM C
WHERE NOT EXISTS
SELECT *
FROM SC
WHERE SC.Sno=S.Sno AND SC.Cno=C.Cno ) ) ;
( 8)查询所学课程包含学生 S3 所学课程的学生学号。
分析:不存在这样的课程 Y,学生 S3 选了 Y,而学生 X 没有选。
SELECT DISTINCT Sno
FROM SC X
WHERE NOT EXISTS
SELECT * FROM SC Y
WHERE Y.Sno= ‘S3’ AND NOT EXISTS
SELECT * FROM SC Z
WHERE Z.Sno=X.Sno AND Z.Cno=Y.Cno )) ;
设教学数据库 Education 有三个关系:
学生关系 S( SNO, SNAME,AGE, SEX, SDEPT);学习关系 SC( SNO,CNO,GRADE);
课程关系 C( CNO, CNAME,CDEPT, TNAME)
查询问题:
1:查所有年龄在 20 岁以下的学生姓名及年龄。
2:查考试成绩有不及格的学生的学号
3:查所年龄在 20 至 23 岁之间的学生姓名、系别及年龄。
4:查计算机系、数学系、信息系的学生姓名、性别。
5:查既不是计算机系、数学
文档评论(0)