1.内聯結也就是在兩張表的相同屬性上做的等值連接配接即自然連接配接,下面用簡明的圖例進行說明

上面是我們用到兩張表,可以看到在兩張表中的相同屬性為TNO 即為教師的職工号,那麼此時如果我們想要對李誠老師的課程進行查詢就涉及到了内聯結,内聯結的兩種寫法是:
-- 第一種寫法
select cname
from table1 inner join table2
on table1.tno=table2.tno;
-- 第二種寫法
select cname
from table1 and table2
where table1.tno=table2.tno;
第一種寫法,是标SQL的寫法, from 語句中将需要進行等值連接配接的表 寫在 inner join兩側,on 語句表示進行等值連接配接的字段
第二種寫法,是比較常見的寫法,但是當将内聯結和where語句進行條件選擇的時候,可能會分不清哪個是連接配接字段,那可是作為選擇的字段。
2.關于外連結 OUTER JOIN
外連結也是通過on子句的聯結鍵将兩表進行聯結,并從兩張表中同時選取相應的列。再次将用到的表貼出來
ShopProduct表
Product表
select SP.SHOP_ID,SP.SHOP_NAME,SP.PRODUCT_ID,p.PRODUCT_NAME
from SHOPPRODUCT sp RIGHT OUTER JOIN PRODUCT p
on SP.PRODUCT_ID=p.PRODUCT_ID;
對應結果為
為什麼會出現這樣的結果呢?并且表的左下角還有兩行NULL 值
首先看一下,多出來的兩行資料是高壓鍋和原子筆,這兩行資料表示,高壓鍋和原子筆這兩種商品并沒有在任何商店中出現過,對于外連結來說,隻要資料存在于某一張表當中,就能取出來,而内聯結隻能取出同時存在于兩張表中的資料
那麼,那張表是主表呢?最終結果會包含主表内所有的資料
對于rightouter join這種來說,寫在右側的表是主表
對于left outer join這種來說,寫在左側的表是主表
這就可以解釋NULL的出現,因為對于高壓鍋和原子筆的銷售資訊在ShopProduct表中找不到