數據庫四種鏈接方式

titles 表

      sh         ph(出版商編號)

    232342       001
      0432       003
  82478123       005


publishers 表

       ph    mc

       001   紅虎
       002   rmh
       003   hazl

現要把這兩個表的內容合成如下的表結構:

sh(書號)    ph(出版商編號)        mc(出版商名稱)
現在看看採用四種鏈接方法的結果會有什麼不同。先說說他們的命令:

內聯接:
sele titles.sh,publishers.ph,publishers.mc ;
from titles inner join publishers ;    &&內聯接中的inner是可以省略的
    on titles.ph=publishers.ph

外聯接:
sele titles.sh,publishers.ph,publishers.mc ;
from titles outer join publishers ;
    on titles.ph=publishers.ph

左聯接:
sele titles.sh,publishers.ph,publishers.mc ;
from titles left join publishers ;
    on titles.ph=publishers.ph

右聯接:
sele titles.sh,publishers.ph,publishers.mc ;
from titles right join publishers ;
    on titles.ph=publishers.ph

大家可能看到,除了在join之前的那個關鍵字不同之外,其他地方是一模一樣的,鏈接條件(即on那一部分)也是一樣的。結果:
titles 表

      sh         ph(出版商編號)

    232342       001
      0432       003
  82478123       005


publishers 表

       ph    mc

       001   紅虎
       002   rmh
       003   hazl

內鏈接inner://兩個表滿足titles.ph=publishers.ph這個條件的就取出來,即左右兩邊表都要有的記錄才放進結果中。

232342  001  紅虎
  0432  003  hazl

全鏈接outer://兩個表只要是有記錄存在的就顯示出來,如果左邊表有的記錄右邊表沒有,就爲null,有沒有是以titles.ph=publishers.ph來衡量
//也爲外連接
  232342  001  001 紅虎
    Null  Null 002 rmh
    0432  003  003 hazl
82478123  005 Null Null

左鏈接://左邊表有的都顯示出來,而對於右邊表沒有titles.ph=publishers.ph的,就爲空

232342  001 001 紅虎
0432  003 003 hazl
82478123 005 Null Null

右鏈接:

232342  001 001 紅虎
Null  Null 002 rmh
0432  003 003 hazl

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章