MySQL实验四数据库的查询_MySQL数据库实验四:嵌套查询
實驗四????????? 嵌套查詢
一、實驗?zāi)康?/p>
掌握SELECT語句的嵌套使用,實現(xiàn)表的復(fù)雜查詢,進一步理解SELECT語句的高級使用方法。
二、實驗環(huán)境
三、實驗示例
1、? 查詢與“劉晨”在同一個系學(xué)習(xí)的學(xué)生。
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、查詢選修了課程名為“信息系統(tǒng)”的學(xué)生學(xué)號和姓名
SELECT Sno,Sname???????????? ③ 最后在Student關(guān)系中
FROM??? Student?????????????????? 取出Sno和Sname
WHERE Sno? IN
(SELECT Sno???????????? ② 然后在SC關(guān)系中找出選
FROM??? SC???? ?????????修了3號課程的學(xué)生學(xué)號
WHERE? Cno IN
(SELECT Cno?????????? ① 首先在Course關(guān)系中找出
FROM Course??????????????? “信息系統(tǒng)”的課程號,為3號
WHERE Cname= ‘信息系統(tǒng)’
)
);
3、檢索學(xué)C2課程的學(xué)號與姓名。
SELECT S#,SNAME?? FROM S
WHERE S# = SOME(SELECT? S#? FROM SC
WHERE C# ='C2');
4、 檢索至少有一門成績超過學(xué)生S4一門成績的學(xué)
生學(xué)號。
SELECT DISTINCT S#?? FROM SC
WHERE SCORE > SOME(SELECT SCORE? FROM SC
WHERE S#='S4');
5、 檢索不學(xué)C2課程的學(xué)生姓名與年齡。
SELECT SNAME,AGE? FROM S
WHERE S# <> ALL(SELECT S#? FROM SC
WHERE C#= 'C2');
6、 檢索平均成績最高的學(xué)生學(xué)號。
SELECT S#? FROM SC
GROUP BY S#
HAVING AVG SCORE >=
ALL(SELECT AVG(SCORE) FROM SC
GROUP BY S#);
7、查詢所有選修了1號課程的學(xué)生姓名。
SELECT Sname
FROM Student
WHERE EXISTS
(SELECT *
FROM SC
WHERE Sno=Student.Sno AND Cno= ' 1 ');
8、? 查詢沒有選修1號課程的學(xué)生姓名。
SELECT Sname
FROM Student
WHERE NOT EXISTS
(SELECT *
FROM SC
WHERE Sno = Student.Sno AND Cno='1');
9、查詢選修了全部課程的學(xué)生姓名。
SELECT Sname
FROM Student
WHERE NOT EXISTS
(SELECT *
FROM Course
WHERE NOT EXISTS
(SELECT *
FROM SC
WHERE Sno= Student.Sno
AND Cno= Course.Cno
)
);
四、實驗內(nèi)容與步驟
1、檢索WANG同學(xué)不學(xué)的課程的課程號。
2、 檢索學(xué)號比WANG同學(xué)大,而年齡比他小的學(xué)生姓名。
3、 求年齡大于女同學(xué)平均年齡的男學(xué)生姓名和年齡。
4、 求年齡大于所有女同學(xué)年齡的男學(xué)生姓名和年齡。
5、檢索全部學(xué)生都選修的課程的課程號與課程名。
6、檢索選修課程包含LIU老師所授課程的學(xué)生學(xué)號。
總結(jié)
以上是生活随笔為你收集整理的MySQL实验四数据库的查询_MySQL数据库实验四:嵌套查询的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 建行个人网银非签约账户和签约账户的区别
- 下一篇: linux cmake编译源码,linu