不少人再剛接觸到SQL sever的時候遇到了不少困難,小編也和你們一樣,所以今天寫下來我的學習後的總結同時裏面也有些與老師講的做對比的內容,希望對您有所幫助。
多表查詢—鏈接查詢
概念:根據兩個表或多個表的列之間的關係,從這些表中查詢數據。
目的:實現多個表查詢操作。
內鏈接:
簡單方法:
select * from t1 –表 a –表的代稱 ,t2 b where a.studentid = b.studentid –鏈接列
select * from t1 a inner join t2 b on a.studentid = b.studentid
select * from t1 a inner join t2 b on a.studentid > b.studentid
select * from t1 a inner join t2 b on a.studentid < b.studentid
select * from t1 a inner join t2 b on a.studentid >= b.studentid
老師講授的方法:
1、Select t10.產品編號, t10.產品名稱,t10.現庫存,t10.進貨量,t11.進貨量,t11.售出量 fromt10 inner join t11 on( t10.產品編號= t11.產品編號)
2、Select a.產品編號,a.產品名稱,a.現庫存,a.進貨量,b.進貨量,b.售出量 from t10a inner join t11 b on( a.產品編號 =b.產品編號)
3、Select t10.產品編號, t10.產品名稱,t10.現庫存,t10.進貨量,t11.進貨量,t11.售出量,
T10.進貨量-t10現庫存as ‘售出貨物量’—varchar類型不能進行運算
(t10.進貨量-t10.現庫存)* (t11.售出價-t11.進貨價)as ‘利潤’
fromt10 inner join t11 on( t10.產品編號= t11.產品編號)
外連接:
左鏈接:
select * from t1 a left join t2 b on a.studentid = b.studentid
返回左表中的所有行,如果左表中行在右表中沒有匹配行,則結果中右表中的列返回空值。
右鏈接:
select * from t1 a right join t2 b on a.studentid = b.studentid
以右鏈接爲基準,t1表格與t2表格按照studentid對應匹配若t1沒有與之對應的值則系統默認爲null值
全鏈接:
select * from t1 a full join t2 b on a.studentid = b.studentid
將兩表格按照studentid進行匹配,當某一行沒有匹配的行,則另一表中所有列反回空值
交叉鏈接:(也稱爲笛卡兒積)
select * from t1,t2 or select * from t1 cross join t2
左表和右表組合,t2表的每個行數分別與t1表的所有行數組合,返回結果的行數等於兩個錶行數的乘積。
如果帶where,返回或顯示的是匹配的行數:
select * from t1 cross join t2 where t1.studentid = t2.studentid
讀者朋友們看完該博客後如果有什麼好的意見或者發現什麼不足,請一定要告訴小編,同時感謝您爲小編帶來成長的可能,希望您學業有成!!!
多謝!!!
同時也歡迎對我的另一篇文章提出指正https://blog.csdn.net/vlllllv/article/details/80150942