前言
在數(shù)據(jù)庫中我們想查詢的數(shù)據(jù)往往是存在多個(gè)獨(dú)立的表中的沈善,所以客戶在瀏覽器頁面操作時(shí)丐黄,服務(wù)器要到數(shù)據(jù)庫中查找相應(yīng)的內(nèi)容杠人,這就需要我們在數(shù)據(jù)庫中能查到相應(yīng)是數(shù)據(jù)來證實(shí)填帽,下面讓我們一起來學(xué)習(xí)多表查詢。
多表查詢
多表查詢分為where條件查詢和join連接查詢
where條件查詢
用法:先做笛卡爾乘積生成一張中間表唧躲,再通過where條件過濾生成最終表
缺陷:若量表數(shù)據(jù)比較龐大的時(shí)候,生成的中間表數(shù)據(jù)量太大碱璃,會(huì)影響數(shù)據(jù)庫的性能
使用join
1.內(nèi)連接
書寫方法:Join&inner join
解釋:先使用on條件過濾弄痹,只顯示滿足條件的數(shù)據(jù),不滿足條件的跳過
2.左外連接
書寫方法:Left join
解釋:以left join左邊的表為主表嵌器,左表數(shù)據(jù)全顯示肛真,右表的數(shù)據(jù)只顯示滿足條件的,不滿足條件的則以null代替
3.右外連接
書寫方法:Right join
解釋:以right join右邊的表為主表爽航,右表的數(shù)據(jù)全部顯示蚓让,左表的數(shù)據(jù)只顯示滿足條件的乾忱,不滿足條件的則以NULL代替
4.全連接
書寫方法:Full join
解釋:量表數(shù)據(jù)全顯示,坐標(biāo)或者右表中沒有滿足條件的數(shù)據(jù)历极,就以NULL代替
總結(jié):
以下表為例:
下表代表全連接的結(jié)果
綠色部分代表內(nèi)連接結(jié)果
綠色及以上部分窄瘟,代表左連接結(jié)果
綠色及以下部分,代表右連接結(jié)果
子查詢
1.性質(zhì)
- 子查詢或內(nèi)部查詢或嵌套查詢在另一個(gè)SQL查詢的查詢和嵌入式WHERE子句中趟卸。
- 子查詢用于返回將被用于在主查詢作為條件的數(shù)據(jù)蹄葱,以進(jìn)一步限制要檢索的數(shù)據(jù)。
- 子查詢可以在SELECT锄列,INSERT图云,UPDATE使用,而且隨著運(yùn)算符如DELETE語句 =, <, >, >=, <=, IN, BETWEEN 等.
2.書寫格式:子查詢(sql語句)+空格+別名
多表關(guān)聯(lián)注意點(diǎn)
1.先畫ER圖,梳理多表之間的聯(lián)系
2.根據(jù)多表之間共同的字段寫sql關(guān)聯(lián)語句
3.表名后+空格+別名
4.子查詢(sql語句)+空格+別名;