1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > MySQL实验四数据库的查询_MySQL数据库实验四:嵌套查询

MySQL实验四数据库的查询_MySQL数据库实验四:嵌套查询

时间:2018-08-14 17:00:46

相关推荐

MySQL实验四数据库的查询_MySQL数据库实验四:嵌套查询

实验四 嵌套查询

一、实验目的

掌握SELECT语句的嵌套使用,实现表的复杂查询,进一步理解SELECT语句的高级使用方法。

二、实验环境

三、实验示例

1、 查询与“刘晨”在同一个系学习的学生。

SELECT Sno,Sname,Sdept

FROM Student

WHERE Sdept IN

(SELECT Sdept

FROM Student

WHERE Sname= ‘ 刘晨 ’);

用自身连接完成

SELECT S1.Sno,S1.Sname,S1.Sdept

FROM Student S1,Student S2

WHERE S1.Sdept = S2.Sdept AND

S2.Sname = '刘晨';

2、查询选修了课程名为“信息系统”的学生学号和姓名

SELECT Sno,Sname ③ 最后在Student关系中

FROM Student 取出Sno和Sname

WHERE Sno IN

(SELECT Sno ② 然后在SC关系中找出选

FROM SC 修了3号课程的学生学号

WHERE Cno IN

(SELECT Cno ① 首先在Course关系中找出

FROM Course “信息系统”的课程号,为3号

WHERE Cname= ‘信息系统’

)

);

3、检索学C2课程的学号与姓名。

SELECT S#,SNAME FROM S

WHERE S# = SOME(SELECT S# FROM SC

WHERE C# ='C2');

4、 检索至少有一门成绩超过学生S4一门成绩的学

生学号。

SELECT DISTINCT S# FROM SC

WHERE SCORE > SOME(SELECT SCORE FROM SC

WHERE S#='S4');

5、 检索不学C2课程的学生姓名与年龄。

SELECT SNAME,AGE FROM S

WHERE S# <> ALL(SELECT S# FROM SC

WHERE C#= 'C2');

6、 检索平均成绩最高的学生学号。

SELECT S# FROM SC

GROUP BY S#

HAVING AVG SCORE >=

ALL(SELECT AVG(SCORE) FROM SC

GROUP BY S#);

7、查询所有选修了1号课程的学生姓名。

SELECT Sname

FROM Student

WHERE EXISTS

(SELECT *

FROM SC

WHERE Sno=Student.Sno AND Cno= ' 1 ');

8、 查询没有选修1号课程的学生姓名。

SELECT Sname

FROM Student

WHERE NOT EXISTS

(SELECT *

FROM SC

WHERE Sno = Student.Sno AND Cno='1');

9、查询选修了全部课程的学生姓名。

SELECT Sname

FROM Student

WHERE NOT EXISTS

(SELECT *

FROM Course

WHERE NOT EXISTS

(SELECT *

FROM SC

WHERE Sno= Student.Sno

AND Cno= o

)

);

四、实验内容与步骤

1、检索WANG同学不学的课程的课程号。

2、 检索学号比WANG同学大,而年龄比他小的学生姓名。

3、 求年龄大于女同学平均年龄的男学生姓名和年龄。

4、 求年龄大于所有女同学年龄的男学生姓名和年龄。

5、检索全部学生都选修的课程的课程号与课程名。

6、检索选修课程包含LIU老师所授课程的学生学号。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。