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= Course.Cno

                                       )

                       );

  四、實驗內容與步驟

 

1、檢索WANG同學不學的課程的課程號。

2、 檢索學號比WANG同學大,而年齡比他小的學生姓名。

3、 求年齡大於女同學平均年齡的男學生姓名和年齡。

4、 求年齡大於所有女同學年齡的男學生姓名和年齡。

5、檢索全部學生都選修的課程的課程號與課程名。

6、檢索選修課程包含LIU老師所授課程的學生學號。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM