数据库复杂查询.doc

上传人:re****.1 文档编号:542275689 上传时间:2022-11-19 格式:DOC 页数:8 大小:185.31KB
返回 下载 相关 举报
数据库复杂查询.doc_第1页
第1页 / 共8页
数据库复杂查询.doc_第2页
第2页 / 共8页
数据库复杂查询.doc_第3页
第3页 / 共8页
数据库复杂查询.doc_第4页
第4页 / 共8页
数据库复杂查询.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《数据库复杂查询.doc》由会员分享,可在线阅读,更多相关《数据库复杂查询.doc(8页珍藏版)》请在金锄头文库上搜索。

1、实验四 复杂查询一、实验目的 掌握两个表以上的连接查询的应用,包括嵌套查询。二、实验内容 (1)查询比“林红”年纪大的男学生信息。查询语句:select * FROM Student_20103285where Birth1991-11-12 AND Sex=男(2)检索所有学生的选课信息,包括学号、姓名、课号、课程名、成绩。 SELECT Student_20103285.Sno,Sname,Course_20103285.Cno,Cname,Grade FROM SC_20103285,Student_20103285,Course_20103285Where Student_201032

2、85.Sno=SC_20103285.Sno AND SC_20103285.Cno=Course_20103285.Cno(3)查询已选课学生的学号、姓名、课程名、成绩。SELECT DISTINCT Student_20103285.Sno,Sname,Course_20103285.Cno,Cname,Grade FROM SC_20103285,Student_20103285,Course_20103285Where Student_20103285.Sno=SC_20103285.Sno AND SC_20103285.Cno=Course_20103285.Cno(4)查询选修了

3、“C语言程序设计”的学生的学号和姓名。 SELECT Student_20103285.Sno,SnameFROM SC_20103285,Student_20103285,Course_20103285Where Course_20103285.Cname=C语言程序设计 AND Course_20103285.Cno=SC_20103285.Cno AND SC_20103285.Sno=Student_20103285.Sno (5)查询与“张虹”在同一个班级的学生学号、姓名、家庭住址。a.用子查询 SELECT Student_20103285.Sno,Sname,Home_addrF

4、ROM Student_20103285Where Classno=(SELECT Classno FROM Student_20103285 WHERE Sname=张虹 )b.用连接查询 SELECT S1.Sno,S1.Sname,S1.Home_addrFROM Student_20103285 S1,Student_20103285 S2Where S1.Classno=S2.Classno AND S2.Sname=张虹(6)查询其他班级中比“051”班所有学生年龄大的学生的学号、姓名。SELECT Sno,SnameFROM Student_20103285WHERE Birth

5、ALL (SELECT Birth FROM Student_20103285 WHERE Classno=051 ) AND Classno051(7)(选作)查询选修了全部课程的学生姓名。SELECT SnameFROM Student_20103285WHERE NOT EXISTS (SELECT * FROM Course_20103285 WHERE NOT EXISTS (SELECT * FROM SC_20103285 WHERE Sno=SC_20103285.Sno and Cno=Course_20103285.Cno ) ) (8)(选作)查询至少选修了学生“2005

6、0002”选修的全部课程的学生的学号,姓名。(9)检索学生的学号、姓名、学习课程名及课程成绩。SELECT Student_20103285.Sno,Sname,Cname,GradeFROM Student_20103285,SC_20103285,Course_20103285WHERE Student_20103285.Sno=SC_20103285.Sno AND SC_20103285.Cno=Course_20103285.Cno(10)检索选修了“高数”课且成绩至少高于选修课程号为“002”课程的学生的学号、课程号、成绩,并按成绩从高到低次序排列。SELECT DISTINCT

7、Sno,Cno,Gradefrom SC_20103285WHERE Cno in ( SELECT Cno from Course_20103285 WHERE Cname=高数) and Grade(select MAX(Grade) FROM SC_20103285 WHERE Cno=002 ) order by Grade DESC(11)检索选修3门以上课程的学生的学号、总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。SELECT Sno,SUM(Grade)总成绩FROM SC_20103285WHERE Grade60GROUP BY Snohaving COUNT

8、(Cno)=3order by 2 DESC(12)检索多于3名学生选修的并以3结尾的课程号的平均成绩。SELECT AVG(SC_20103285.Grade) 平均成绩from SC_20103285WHERE Cno LIKE %3group by CnoHAVING COUNT(SC_20103285.Cno)=3(13)检索最高分与最低分之差大于5分的学生的学号、姓名、最高分、最底分。SELECT Student_20103285.Sno,Student_20103285.Sname, MAX(SC_20103285.Grade)最高分,MIN(SC_20103285.Grade)最

9、低分FROM SC_20103285,Student_20103285WHERE SC_20103285.Sno=Student_20103285.SnoGROUP BY Student_20103285.Sno,Student_20103285.Snamehaving (MAX(SC_20103285.Grade)-MIN(SC_20103285.Grade)=5(14)外连接对实验二中的表6和表7做一个外连接查询,显示每门课程的课号、课名、选修该门课的学号、成绩,没有同学选修的课程(如Visual_Basic)也要在查询结果中。SELECT Course_20103285.Cno,Cnam

10、e,Sno,GradeFROM Course_20103285,SC_20103285WHERE Course_20103285.Cno=SC_20103285.Cno(1415)创建一个表studentStudent_other,结构同studentStudent,输入若干记录,部分记录和studentStudent表中的相同。创建表Student_other_20103285CREATE TABLE Student_other_20103285 (Sno char(8) not NULL primary key,Sname varchar(8) not NULL,Sex char(2) n

11、ot NULL default 男,Birth smalldatetime not null,Classno char(3) not null,Entrance_date smalldatetime not null,Home_addr varchar(40),Sdept varchar(8) not null,Postcode char(6) check (Postcode like 0-90-90-90-90-90-9)插入数据:insert into Student_other_20103285values(20110001,张虹,男,1992/09/11,051,2011/09/01,

12、南京,计算机系,200413)insert into Student_other_20103285values(20110009,张共,女,1992/04/11,054,2010/09/01,登封,计算机系,452470)a. 查询同时出现在studentStudent表和studentStudent_other表中的记录 SELECT *FROM Student_20103285INTERSECTSELECT *FROM Student_other_20103285b. 查询studentStudent表和studentStudent_other表中的全部记录 SELECT *FROM St

13、udent_20103285UNIONSELECT *FROM Student_other_20103285(1516)(选作)创建一个数据库studentStudent_info_other,参数自定。创建数据库:CREATE DATABASE Student_info_20103285a.当前数据库为studentStudent_info,将studentStudent_info数据库中的表studentStudent_other复制到studentStudent_info_other中。 b.查询同时出现在studentStudent表和tudent_info_other数据库studentStudent_other表中的记录。 (16)外连接

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号