1、关系代数及 SQL查询实例练习SNO SNAME AGE SEX1 李强 23 男2 刘丽 22 女5 张友 22 男CNO(课号)CNAME( 课名)TEACHER( 教师)k1 C语言 王华k5 数据库原理 程军k8 编译原理 程军SNO CNO GRADE1 K1 832 K1 855 K1 922 K5 905 K5 845 K8 80SC: 学生选课成绩表S: 学生信息表C: 课程信息表(1) 检索 “程军 ”老师所授课程的课程号 CNO和课程名 CNAME。( 2)检索年龄大于 21的男学生学号 SNO和姓名 SNAME。 ( 3)检索至少选修 “ 程军 ” 老师所授全部课程的学生
2、姓名 SNAME。 ( 4)检索 “ 李强 ” 同学不学课程的课程号。 (5)检索至少选修两门课程的学生学号。 (6)检索全部学生都选修的课程的课程号和课程名。 (7)检索选修课程包含 “程军 ”老师所授课程之一的学生学号。 (8)检索选修课程号为 k1和 k5的学生学号。 (10)检索选修课程包含学号为 2的学生所修课程的学生学号。(9)检索选修全部课程的学生姓名;(11)检索选修课程名为 “C语言 ”的学生学号和姓名。SQL查询实例练习(1) 检索 “程军 ”老师所授课程的课程号 CNO和课程名 CNAME。SELECT CNO,CNAMEFROM CWHERE TEACHER=程军 ;
3、( 2)检索年龄大于 21的男学生学号 SNO和姓名 SNAME。 SELECT SNO,SNAMEFROM SWHERE AGE21 AND SEX=男 ;( 3)检索至少选修 “ 程军 ” 老师所授全部课程的学生姓名 SNAME。 SELECT SNAMEFROM SWHERE NOT EXISTS(SELECT *FROM CWHERE TEACHER=程军 AND NOT EXISTS (SELECT *FROM SCWHERE SC.SNO=S.SNO AND SC.CNO=C.CNO); ( 4)检索 “ 李强 ” 同学不学课程的课程号。 SELECT CNOFROM CWHERE
4、 CNO NOT IN(SELECT CNOFROM SC,SWHERE SC.SNO=S.SNO AND S.SNAME=李强 ) ;SELECT CNOFROM CEXCEPT SELECT CNOFROM SC,SWHERE SC.SNO=S.SNO AND S.SNAME=李强 ; 或(5)检索至少选修两门课程的学生学号。 SELECT SNOFROM SC A, SC BWHERE A.SNO=B.SNO AND A.CNOB.CNO; (6)检索全部学生都选修的课程的课程号和课程名。 SELECT CNO,CNAMEFROM CWHERE NOT EXISTS(SELECT *FROM SWHERE NOT EXISTS(SELECT *FROM SCWHERE SC.CNO=C.CNO AND SC.SNO=S.SNO);