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

上传人:新** 文档编号:569432994 上传时间:2024-07-29 格式:PPT 页数:15 大小:497.31KB
返回 下载 相关 举报
《数据库习题课》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语句例题1n设有如图所示的关系S,SC,C,试用关系代数表达式表示下列查询语句: S#SNAMEAGESEX1李强23男2刘丽22女3张友22男C#CNAMETEACHERK1C语言王华K5数据库原理程军K8编译原理程军S#C#GRADE1K1832K1855K1922K5905K5845K880(1)检索)检索“程军程军”老师所授课程的课程号(老师所授课程的课程号(C#)和课程名()和课程名(CNAME)。)。(2)检索年龄大于)检索年龄大于21的男学生学号(的男学生学号(S#)和姓名()和姓名(SNAME)。)。(3)检索至少选修)检索至少

2、选修“程军程军”老师所授全部课程的学生姓名。老师所授全部课程的学生姓名。(4)检索)检索“李强李强”同学不学课程的课程号。同学不学课程的课程号。(5)检索至少选修两门课程的学生学号()检索至少选修两门课程的学生学号(S#)。)。(6)检索全部学生都选修的课程的课程号()检索全部学生都选修的课程的课程号(C#)和课程名()和课程名(CNAME)。)。(7)检索选修课程包含)检索选修课程包含“程军程军”老师所授课程之一的学生学号(老师所授课程之一的学生学号(S#)。)。(8)检索选修课程号为)检索选修课程号为K1和和K5的学生学号(的学生学号(S#)。)。(9)检索选修全部课程的学生姓名()检索选

3、修全部课程的学生姓名(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

4、 S WHERE AGE21 AND SEX=男;(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

5、S.SNAME=李强) ;SELECT CNOFROM CEXCEPT SELECT 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.C

6、NO=C.CNO AND SC.SNO=S.SNO); (7)检索选修课程包含“程军”老师所授课程之一的学生学号。 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)检索选修

7、全部课程的学生姓名;SELECT SNAME FROM S WHERE NOT EXISTS (SELECT *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( sele

8、ct * from 选读 where 学号=学号 and 课程号=课程.课程号) 请注意,多出了学号的筛选即,学号=学号。 3.遍历每一个主查询的学号,每一个学号都按第二筛选方法筛选出:没有未选课程的学生的学号。(不包括在第查询方法查询出的“有未学课程的学号的记录集”中的记录。) 请注意:用主查询中的 学生.学号 代替了学号。 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备13022795号 | 川公网安备 51140202000112号