《数据库习题课》PPT课件.ppt

上传人:牧羊曲112 文档编号:5519488 上传时间:2023-07-16 格式:PPT 页数:15 大小:238.49KB
返回 下载 相关 举报
《数据库习题课》PPT课件.ppt_第1页
第1页 / 共15页
《数据库习题课》PPT课件.ppt_第2页
第2页 / 共15页
《数据库习题课》PPT课件.ppt_第3页
第3页 / 共15页
《数据库习题课》PPT课件.ppt_第4页
第4页 / 共15页
《数据库习题课》PPT课件.ppt_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《《数据库习题课》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《数据库习题课》PPT课件.ppt(15页珍藏版)》请在三一办公上搜索。

1、数据库习题课(第二章and第三章),关系代数与SQL语句,例题1,设有如图所示的关系S,SC,C,试用关系代数表达式表示下列查询语句:,(1)检索“程军”老师所授课程的课程号(C#)和课程名(CNAME)。(2)检索年龄大于21的男学生学号(S#)和姓名(SNAME)。(3)检索至少选修“程军”老师所授全部课程的学生姓名。(4)检索“李强”同学不学课程的课程号。(5)检索至少选修两门课程的学生学号(S#)。(6)检索全部学生都选修的课程的课程号(C#)和课程名(CNAME)。(7)检索选修课程包含“程军”老师所授课程之一的学生学号(S#)。(8)检索选修课程号为K1和K5的学生学号(S#)。(

2、9)检索选修全部课程的学生姓名(SNAME)。(10)检索选修课程包含学号为2的学生所修课程的学生学号(S#)。(11)检索选修课程名为“C语言”的学生学号(S#)和姓名(SNAME)。,(2),(1),(3),(4),(5),(6),(7),(8),(9),(10),(11),(1)检索“程军”老师所授课程的课程号CNO和课程名CNAME。,SELECT CNO,CNAMEFROM CWHERE TEACHER=程军;,(2)检索年龄大于21的男学生学号SNO和姓名SNAME。,SELECT SNO,SNAME FROM S WHERE AGE21 AND SEX=男;,(3)检索至少选修“

3、程军”老师所授全部课程的学生姓名SNAME。,SELECT SNAME FROM S WHERE NOT EXISTS(SELECT*FROM C WHERE TEACHER=程军 AND NOT EXISTS(SELECT*FROM SC WHERE SC.SNO=S.SNO AND SC.CNO=C.CNO);,(4)检索“李强”同学不学课程的课程号。,SELECT CNO FROM C WHERE CNO NOT IN(SELECT CNO FROM SC,SWHERE SC.SNO=S.SNO AND S.SNAME=李强);,SELECT CNOFROM CEXCEPT SELECT

4、 CNOFROM SC,SWHERE SC.SNO=S.SNO AND S.SNAME=李强;,或,(5)检索至少选修两门课程的学生学号。,SELECT SNO FROM SC A,SC B WHERE A.SNO=B.SNO AND A.CNOB.CNO;,(6)检索全部学生都选修的课程的课程号和课程名。,SELECT CNO,CNAME FROM C WHERE NOT EXISTS(SELECT*FROM S WHERE NOT EXISTS(SELECT*FROM SC WHERE SC.CNO=C.CNO AND SC.SNO=S.SNO);,(7)检索选修课程包含“程军”老师所授课

5、程之一的学生学号。,SELECT SNO FROM C,SC WHERE C.CNO=SC.CNO AND C.TEACHER=程军;,(8)检索选修课程号为k1和k5的学生学号。,SELECT SNO FROM SC WHERE SC.CNO=k1 INTERSECT SELECT SNO FROM SC WHERE SC.CNO=k5;,或:SELECT SNOFROM SC A,SC BWHERE A.SNO=B.SNO AND A.CNO=k1 AND B.CNO=k5;,(9)检索选修全部课程的学生姓名;,SELECT SNAME FROM S WHERE NOT EXISTS(SE

6、LECT*FROM CWHERE NOT EXISTS(SELECT*FROM SC WHERE SC.SNO=S.SNO AND SC.CNO=C.CNO);,1.所有未选过的课程的数据集:select*from 课程 where not exists(select*from 选读 where 课程号=课程.课程号)2.所有没被某位学号为 学号 的学生选过的课程的记录集(学号学生的未选课程):select*from 课程 where not exists(select*from 选读 where 学号=学号 and 课程号=课程.课程号)请注意,多出了学号的筛选即,学号=学号。3.遍历每一个

7、主查询的学号,每一个学号都按第二筛选方法筛选出:没有未选课程的学生的学号。(不包括在第查询方法查询出的“有未学课程的学号的记录集”中的记录。)请注意:用主查询中的 学生.学号 代替了学号。select 学生.姓名 from 学生 where not exists(select*from 课程 where not exists(select*from 选读 where 学号=学生.学号 and 课程号=课程.课程号)这已经是整个查询语句,可以看出子查询中用学生.学号替换了第2步中的 学号,SELECT SNO FROM S WHERE NOT EXISTS(SELECT*FROM SC AWHERE SC.SNO=2 AND NOT EXISTS(SELECT*FROM SC B B.SNO=S.SNO AND B.CNO=A.CNO);,(10)检索选修课程包含学号为2的学生所修课程的学生学号。,(11)SELECT SNO,SNAME FROM S,SC,C WHERE S.SNO=SC.SNO AND C.CNO=SC.CNO AND CNAME=C语言;,(11)检索选修课程名为“C语言”的学生学号和姓名。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号