整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          數據庫學習筆記之數據庫查詢(二)

          數據庫學習筆記之數據庫查詢(二)

          這次主要總結一下多表連接查詢~~

          所謂連接查詢,就是指一個查詢同時涉及兩個或兩個以上的表,連接查詢又包括內連接、外連接和交叉連接等查詢用到的還是這個里面提到的那三個表

          內連接

          語法:

          SELECT ...
          FROM 表名 [INNER] JOIN
          被連接表
          ON <連接條件>

          例子:

          1、查詢每個學生及其選課的詳細信息

          SELECT * FROM Student INNER JOIN SC ON Student.Sno = SC.Sno;

          在這里插入圖片描述

          2、查詢計算機系學生的修課情況,要求列出學生的學號、名字、所修課的課程號和成績。

          SELECT Student.Sno, Student.Sname,SC.Cno, SC.Cno, SC.Grade 
          FROM Student JOIN SC 
          ON Student.Sno = SC.Sno 
          WHERE Student.Sdept = '計算機系';

          在這里插入圖片描述

          3、統計每個系的學生的考試平均成績

          SELECT Student.Sdept, AVG(Grade) 平均成績 
          FROM Student 
          JOIN SC 
          ON Student.Sno = SC.Sno 
          GROUP BY Sdept;
          

          在這里插入圖片描述

          4、統計計算機系每門課程的選課人數、平均成績、最高成績和最低成績。

          SELECT Cno, COUNT(*) 選課人數, AVG(Grade) 平均成績, MAX(Grade) 最高成績, MIN(Grade) 最低成績 
          FROM Student 
          JOIN SC 
          ON Student.Sno = SC.Sno 
          WHERE Student.Sdept = '計算機系' 
          GROUP BY Cno;

          在這里插入圖片描述

          自連接

          說明:

          自連接為特殊的內連接,相互連接的表物理上為同一張表;必須為兩個表取別名,使之在邏輯上成為兩個表。

          例:

          1、查詢與劉晨在同一個系學習的學生的姓名和所在的系

          SELECT S2.Sname, S2.Sdept 
          FROM Student S1 JOIN Student S2 
          ON S1.Sdept = S2.Sdept 
          WHERE S1.Sname = '劉晨' AND S2.Sname != '劉晨';

          在這里插入圖片描述

          2、查詢與“數據結構”學分相同的課程的課程名和學分

          SELECT c1.Cname, c1.Ccredit 
          FROM Course c1 JOIN Course c2 
          ON c1.Ccredit = c2.Ccredit 
          WHERE c2.Cname = '數據結構' ;

          在這里插入圖片描述

          外連接

          說明:

          只限制一張表中的數據必須滿足連接條件,而另一張表中數據可以不滿足連接條件

          語法:

          SELECT ...
          FROM1 
          LEFT | RIGHT [OUTER] JOIN2 
          ON <連接條件> 
          

          例:

          查詢學生的修課情況,包括修了課程的學生和沒有修課的學生

          如果用普通的查詢的話:

          SELECT Student.Sno, Sname, Cno, Grade
           FROM Student, SC
           WHERE Student.Sno = SC.Sno; 

          由于沒有選課的學生在SC表中就沒有記錄,所以這種查詢是查詢不到沒有修課的學生的記錄,查詢結果如圖:

          在這里插入圖片描述

          所以需要用到外連接查詢:

          左外連接查詢:

          SELECT Student.Sno, Sname, Cno, Grade 
          FROM Student 
          LEFT OUTER JOIN  SC 
          ON Student.Sno = SC.Sno; 

          右外連接查詢:

          SELECT Student.Sno, Sname, Cno, Grade 
          FROM SC 
          RIGHT OUTER JOIN  Student 
          ON Student.Sno = SC.Sno; 

          在這里插入圖片描述


          主站蜘蛛池模板: 国产一区二区三区夜色| 无码人妻精品一区二区三区蜜桃| 亚欧成人中文字幕一区| 精品少妇ay一区二区三区| 精品人妻少妇一区二区| 美女视频一区三区网站在线观看| 亚拍精品一区二区三区| 视频在线一区二区| 精品日产一区二区三区手机| 精品国产一区二区三区在线| 熟女大屁股白浆一区二区| 国产一区二区在线视频播放| 无码人妻少妇色欲AV一区二区| 亚洲AV无码一区二区三区国产| 国产精品夜色一区二区三区| 亚洲色欲一区二区三区在线观看| 日韩精品国产一区| 国产精品无码一区二区在线| 国产午夜精品一区二区三区不卡| 精品无码人妻一区二区三区18 | 99久久精品国产免看国产一区| 亚洲日韩中文字幕一区| 国产日韩精品视频一区二区三区| 亚洲V无码一区二区三区四区观看| 亚洲av无码天堂一区二区三区 | 国偷自产视频一区二区久 | 国产精品亚洲一区二区麻豆| 无码人妻精品一区二区三区东京热| 国产自产V一区二区三区C| 免费观看一区二区三区| 国产av熟女一区二区三区| 久久毛片免费看一区二区三区| 久久AAAA片一区二区| 香蕉免费看一区二区三区| 另类免费视频一区二区在线观看| 中文字幕在线播放一区| 91久久精品一区二区| 精品久久久中文字幕一区| 爆乳熟妇一区二区三区霸乳| 亚洲午夜福利AV一区二区无码 | 亚欧色一区W666天堂|