整合營銷服務商

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

          免費咨詢熱線:

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

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

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

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

          內連接

          語法:

          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; 

          在這里插入圖片描述


          主站蜘蛛池模板: 成人无码AV一区二区| 精品女同一区二区三区在线 | 一区二区三区高清视频在线观看| 一区二区高清在线| 亚洲色精品三区二区一区| 亚洲A∨无码一区二区三区| 精品成人av一区二区三区| 色一乱一伦一区一直爽| 麻豆一区二区免费播放网站| 日韩一区二区三区无码影院| 日本亚洲国产一区二区三区| 精品视频在线观看你懂的一区| 性色av无码免费一区二区三区| 无码国产精品一区二区免费I6| 精品人妻AV一区二区三区 | 色婷婷香蕉在线一区二区| 色婷婷综合久久久久中文一区二区 | 日本不卡一区二区视频a| 一区二区三区内射美女毛片| 一区二区国产精品| 日韩在线一区二区三区免费视频| 精品国产一区二区三区在线| 无码日韩AV一区二区三区| 国产一区二区成人| 亚洲av乱码一区二区三区按摩| 精品欧美一区二区在线观看| 加勒比无码一区二区三区| 国产日韩精品一区二区在线观看播放 | 久久久久人妻一区精品色| 亚洲AV日韩AV天堂一区二区三区| 色婷婷综合久久久久中文一区二区 | 国产在线精品一区二区在线看 | 中文字幕乱码一区二区免费| 亚洲韩国精品无码一区二区三区| 国产成人精品一区二区秒拍| 精品无码人妻一区二区三区| 亚洲AV无码一区二区三区性色 | 中文字幕无码不卡一区二区三区 | 亚洲AV无码一区二区乱孑伦AS| 国产AV一区二区三区传媒| 亚洲一区二区三区无码国产|