一、內查詢:將兩個表中同時存在的數據打印。
表1 inner join 表2 on 表1.屬性 = 表2.屬性
二、外查詢:right | left
表1 left join 表2 on 表1.屬性 = 表2.屬性
1、左連接:
(1)將左表和右表相同屬性值的結果返回;
(2)將左表存在,而右表不存在的也返回;
(3)右表對應屬性值爲null,將右表存在、左表不存在的忽略掉。
表1 right join 表2 on 表1.屬性 = 表2.屬性
2、右連接:
(1)將左表和右表相同屬性值的結果返回;
(2)將右表存在、而左表不存在的數據也返回;
(3)左表不存在的屬性值爲null,將左表存在、右表不存在的忽略掉。
練習:
1、學生表
Student(SID,Sname,Sage,Ssex)
--SID 學生編號,Sname 學生姓名,Sage 年齡,Ssex 學生性別
2.課程表
Course(CID,Cname,TID)
--CID --課程編號,Cname 課程名稱,TID 教師編號
3.教師表
Teacher(TID,Tname)
--TID 教師編號,Tname 教師姓名
4.成績表
SC(SID,CID,score)
--SID 學生編號,CID 課程編號,score 分數
學生表:
編號 姓名 年齡 性別
1 趙雷 20 男
2 錢電 20 男
3 孫風 21 男
4 吳蘭 18 女
5 孫蘭 17 女
課程表:
課程號 課程名稱 教師編號
1 語文 2
2 數學 1
3 英語 3
教師表:
教師編號 教師名
1 張三
2 李四
3 王五
成績表:
學生編號 課程編號 分數
1 1 80
1 2 71
1 3 87
2 1 88
2 2 70
2 3 89
3 1 68
3 2 78
3 3 87
4 1 67
4 2 58
4 3 89
5 1 56
5 2 89
6 3 38
(1)查詢“01”課程比“02”課程成績高的學生的信息及課程分數:
(2)查詢平均成績大於等於60分的同學的學生編號、學生姓名和平均成績:
(3)查詢在SC表中不存在成績的學生的信息:
(4)查詢所有同學的學生編號、學生姓名、選課總數、所有課程的總成績:
(5)查詢"李"姓老師的數量:
(6)查詢學過"張三"老師授課的同學的信息:
(7)查詢學過編號爲"01"並且也學過編號爲"02"的課程的同學的信息:
(8)查詢兩門及其以上不及格課程的同學的學號,姓名及其平均成績: