MySQL資料庫實驗四:巢狀查詢

來源:互聯網
上載者:User

標籤:實驗目的   group   使用   內容   mysql   目的   實驗環境   strong   資料   

實驗四          巢狀查詢

一、實驗目的

掌握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老師所授課程的學生學號。

MySQL資料庫實驗四:巢狀查詢

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.