帶你分析MySQL中的三種連線

2021-10-07 12:42:37 字數 1555 閱讀 6544

mysql中表連線一直是很多人比較混淆的地方。到底mysql中有哪幾種連線,它們有什麼不一樣的呢?下面筆者帶你一一分析。

什麼是表連線?表連線一般體現在表之間的關係上。當需要同時顯示多個表中的字段時,就可以用表連線來實現。而表連線中,分為內連線和外連線。外連線中又分為左外連線,右外連線。有些人可能會疑惑,不是還有全外連線嗎?是的,在其他的資料庫中的確存在全外連線,但是在mysql資料庫中並不存在,所以全外連線我們暫時忽略掉。

內連線

內連線:選出兩張表中互相匹配的記錄。

sql語句寫法:select * from a表,b表 where a表.c欄位=b表.d欄位

左外連線

左外連線:篩選出包含左表的記錄並且右表沒有和它匹配的記錄。

sql語句寫法:select * from a表 left join b表 on a表.c欄位=b表.d欄位

右外連線

右外連線:篩選出包含右表的記錄並且左表沒有和它匹配的記錄。

sql語句寫法:select * from a表 right join b表 on a表.c欄位=b表.d欄位

如果你對上面文縐縐的文字理解不了,下面我們就實際用資料庫演示一下,看看三種連線到底有什麼不同的結果。

我們以兩個資料表為例。乙個是pet表,表示寵物。乙個是person表,表示主人。寵物表中兩個字段,id和name。主人表中有三個字段,id、name和pid。pid表示這個人的寵物id。寵物表的id和主人表的pid之間存在外來鍵聯絡,乙個主人擁有乙個寵物。

pet表和person表的結構

pet表和person表的資料

使用內連線進行查詢

使用左外連線進行查詢

使用右外連線進行查詢

總結:筆者最後用自己的話總結一下,表連線使用在兩個表之間有外來鍵聯絡的情況下。使用內連線時,會把兩個表字段中有相同資料的記錄查詢出來,沒有相同資料的記錄則不會顯示。而外連線不僅會把有相同資料的記錄顯示出來,也會把沒有相同資料的記錄顯示出來。左外連線則是以左表為標準,以左表外來鍵字段中所有資料去連線右表,當右表中沒有左表某個資料的記錄時,則會置為null。右外連線則是以右表為標準,以右表外來鍵字段中的所有資料去連線左表,當左表中沒有右表某個資料的記錄時,則會置為null。

mysql 連線三種方式 mysql的三種連線方式

sql的三種連線方式分為 左外連線 右外連線 內連線,專業術語分別為 left join right joing inner join 內連線inner join 使用比較運算子來根據指定的連線的每個表都有的列的值來進行匹配連線,如果對應的列值不存在,則連線的所有表對應的該列值都不會進行連線,也就是...

php連線 mysql的三種連線方式

php與mysql的連線有三種api介面,分別是 php的mysql擴充套件 php的mysqli擴充套件 php資料物件 pdo 下面針對以上三種連線方式做下總結,以備在不同場景下選出最優方案。php的mysql擴充套件是設計開發允許php應用與mysql資料庫互動的早期擴充套件。mysql擴充套...

PHP三種連線mysql方式

主要分為兩種,一是通過mysqli方式,另外是通過pdo mysqli方式只能連線mysql資料庫,而pdo方式可以連線12種資料庫,便於資料庫切換 一 mysqli方式 分為面向過程和物件導向兩種不同的方式 1.mysqli 面向過程 servername localhost username r...