有3個表
1、等值連接:連接過程中,先連接,再條件判斷
語法:select * from 表1,表2
where 表1.列=表2.列
例:查詢學生信息及學生的成績
2、內連接: 連接過程中,先判斷,符合條件才會連接
語法:select * from 表1,表2
inner join 表2.列=表2.列
例:查詢課程信息及學生的成績
方式1:
方式2:
例:查詢學生信息及學生的課程對應的成績
方式1:
方式2:
例:查詢王昭君的成績,要求顯示姓名,課程號,成績
方式1:
方式2:
例:查詢王昭君的數據庫成績,要求顯示姓名、課程名、成績
方式1:
方式2:
例:查詢所有的數據庫成績,要求顯示姓名、課程名、成績
方式1:
方式2:
例:查詢男生中最高成績,要求顯示姓名、課程名、成績
方式1:
方式2:
3、左連接:
語法:select * from 表1,表2
left join 表2 on 表1.列=表2.列
例:查詢所有學生的成績,包括沒有成績的學生
例:查詢所有學生的成績,不包括沒有成績的學生
例:查詢所有學生的成績,包括沒有成績的學生,需要顯示課程名
例:查詢所有學生的成績,不包括沒有成績的學生,需要顯示課程名
4、右連接:
語法:select * from 表1,表2
right join 表2 on 表1.列=表2.列
例:查詢所有學生的成績,包括沒有成績的學生
例:查詢所有學生的成績,不包括沒有成績的學生
例:查詢所有課程的成績,包括沒有成績的學生,包括學生信息
例:查詢所有課程的成績,不包括沒有成績的學生,包括學生信息
5、自關聯
舉例:沒有上級編號,Null
aid跟pid進行比較,如果后面的pid==前面的aid,代表市屬於省
例:一共有多少個省 :select * from areas where pid is null;
pid為空,說明是省,沒有上級
例:查詢河南省所有城市 (areas可以查2次)
方式1:
查詢的時候,重命名2個表格,一個是省,一個是市
方式2:
例:查詢鄭州市所有區縣
例:查詢河南省的所有區縣