资源预览内容
第1页 / 共21页
第2页 / 共21页
第3页 / 共21页
第4页 / 共21页
第5页 / 共21页
第6页 / 共21页
第7页 / 共21页
第8页 / 共21页
第9页 / 共21页
第10页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
关系代数查询实例练习 有如下三个关系表,请完成相应操作。 S:学生 SNOSNAMEAGESEX 1李强23男 2刘丽22女 5张友22男 CNO(课 号) CNAME(课名 ) TEACHER(教 师) k1C语言王华 k5数据库原理程军 k8编译原理程军 SNOCNOGRADE 1K183 2K185 5K192 2K590 5K584 5K880 SC:学生选课成绩表 S:学生信息表 C:课程信息表 (1) 检索“程军”老师所授课程的课程号CNO和课程名CNAME。 (2)检索年龄大于21的男学生学号SNO和姓名SNAME。 (3)检索至少选修“程军”老师所授全部课程的学生姓名SNAME。 (4)检索“李强”同学不学课程的课程号。 (5)检索至少选修两门课程的学生学号。 (6)检索全部学生都选修的课程的课程号和课程名。 (7)检索选修课程包含“程军”老师所授课程之一的学生学号。 (8)检索选修课程号为k1和k5的学生学号。 (10)检索选修课程包含学号为2的学生所修课程的学生学号。 (9)检索选修全部课程的学生姓名; (11)检索选修课程名为“C语言”的学生学号和姓名。 SQL查询实例练习 (1) 检索“程军”老师所授课程的课程号CNO和课程名CNAME。 SELECT CNO,CNAME FROM C WHERE TEACHER=程军; (2)检索年龄大于21的男学生学号SNO和姓名SNAME。 SELECT SNO,SNAME FROM 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,S WHERE SC.SNO=S.SNO AND S.SNAME=李强) ; SELECT CNO FROM C EXCEPT SELECT CNO FROM SC,S WHERE 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)检索选修课程包含“程军”老师所授课程之一的学生学号。 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 SNO FROM SC A, SC B WHERE A.SNO=B.SNO AND A.CNO=k1 AND B.CNO=k5 ; (9)检索选修全部课程的学生姓名; 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); SELECT SNO FROM S WHERE NOT EXISTS (SELECT * FROM SC A WHERE 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语言”的学生学号和姓名。 SQL练习二 NONAMESEXBIRTHDAYCLASS 108曾华男09/01/7795033 105匡明男10/02/7595031 107王丽女01/23/7695033 101李军男02/20/7695033 109王芳女02/10/7595031 103陆君男06/03/7495031 NONAMESEXBIRTHDAYPROFDEPART 804李诚男12/02/58副教授计算机系 856张旭男03/12/69讲师电子工程系 825王萍女05/05/72助教计算机系 831刘冰女08/15/77助教电子工程系 Student:学生信息表 Teacher:教师信息表 CNOCNAMETNO 3-105计算机导论825 3-245操作系统804 6-166数据字电路856 9-888高等数据学100 6-187数据库系统804 NOCNODEGRE E 1033-24586 1053-24575 1093-24568 1033-10592 1053-10588 1093-10576 1013-10564 1073-10591 1083-10578 1016-16685 1076-16679 1086-16681 Course:课程信息表 Score:成绩信息表 (1)、在屏幕上列出student表中所有记录的name,sex和class列; (2)、屏幕显示教师所有的单位(即不重复的depart列); (3)、屏幕显示score表中成绩在60到80分之间的所有记录; (4)、在屏幕上显示student中”950311”班或性别为”女”的同学记录; (5)、以class降序在屏幕上显示student表的所有记录; (6)、在屏幕上显示 “95031”班的学生人数; (7)、显示所有学生的name,cno和degree列; (8)、显示所有学生的name, cname 和degree列; (9)、列出所有未讲课的教师的name和depart; (10)、删除student中学号为”999”的学生记录; (11)、将student中学号为”990”的学生的班号改为“95031”; 用SQL完成以下操作: (1)select name,sex,class from student; (2) select distinct depart from teacher; (3) select * from score where degree between 60 and 80; (4) select * from student where 95031 or sex=女; (5) select * from student order by class desc; (6) select count(*) as 学生人数 from student where 95031 (7) select name,cno,degree from student,course,score where student.no=score.no (8) select name,cname,degree from student,course,score where student.no=score.no and o=o (9) select name,depart from teacher where no not in (select distinct tno from course) (10) delete from student where no=999 (11)update student set 95031 where no=990
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号