MySQL資料庫連線查詢的使用方法

2021-10-01 11:09:59 字數 2369 閱讀 3044

連線查詢可以實現多個表的查詢,當查詢的字段資料來自不同的表就可以使用連線查詢來完成。

連線查詢可以分為:

內連線查詢

左連線查詢

右連線查詢

自連線查詢

我們都知道資料庫表不可能都存到乙個表中,隨著我們的資料量越來越大,我們就需要建立多個表,來儲存不同的資訊,以便於後期的維護和管理.隨著表的增加,我們就需要根據實際業務需求從而使用連線查詢來解決一些問題.

查詢兩個表當中符合條件的共有記錄.

可以理解為數學當中,兩個集合的交集.

內連線查詢效果圖:

內連線查詢語法格式:

select 字段 from 表1

as 別名 inner

join 表2

as 別名 on 表1.欄位1

= 表2.欄位2

說明:

例如:使用內連線查詢學生表與班結表:

select

*from students as s inner

join classes as c on s.cls_id = c.id;

select

*from students s inner

join classes c on s.cls_id = c.id;

select

*from students inner

join classes on s.cls_id = c.id;

以左表為主根據條件查詢右表資料,如果根據條件查詢右表資料不存在使用null值填充

左連線查詢效果圖:

左連線查詢的語法格式:

select 字段 from 表1

left

join 表2

on 表1.欄位1

= 表2.欄位2

說明:

例如:使用左連線查詢學生表與班級表:

select

*from students as s left

join classes as c on s.cls_id = c.id;

以右表為主根據條件查詢左表資料,如果根據條件查詢左表資料不存在使用null值填充

右連線查詢效果圖:

select 字段 from 表1

right

join 表2

on 表1.欄位1

= 表2.欄位2

說明:

例如:使用右連線查詢學生表與班級表:

select

*from students as s right

join classes as c on s.cls_id = c.id;

左表和右表是同乙個表,根據連線查詢條件查詢兩個表中的資料.

在這裡簡單做了乙個表來進行分析,如果你能夠理解這個,你會發現自連線其實並不難.

有乙個省表,如下圖有省id以及省名

有乙個市表,如下圖有市id,市名,以及所屬省id,我們可以根據它的所屬省id,從而能夠找到這個市屬於哪乙個省.

乙個區表,如下圖有區id,區名,所屬市id.同樣我們可以根據它的所屬市id,從而找到這個區屬於哪乙個市.

我們將這三個表合併到一起,省的所屬id為null(如果所屬id為null,證明它是乙個省),這樣一結合,我們是不是也能根據市的所屬id找到這個市屬於哪乙個省,同樣也可以通過區的所屬id找到它屬於哪個市.

從而就引出了自連線查詢,在自連線查詢中,由於我們只有一張表,所以必須對錶起別名.(我們就把起的兩個不同的別名,當做是兩張表,從而進行查詢)

自連線查詢的用法:

select c.id, c.title, c.pid, p.title from areas as c inner

join areas as p on c.pid = p.id where p.title =

'山西省'

;

總結

Mysql資料庫連線查詢

連線查詢 將多張表 可以大於等於2 進行記錄的連線 按照某個指定的條件進行資料的拼接 最終結果 記錄數可能有變化,字段數一定會增加 至少是兩張表的合併 連線查詢的意義 在使用者檢視資料的時候,需要顯示的資料來自多張表。連線查詢 join 使用方式 左表 join 右表 左表 join關鍵字左邊的表 ...

golang連線mysql資料庫查詢

確認位址是否有效 err db.ping if err nil var id int name string 將查詢傳送到資料庫。像往常一樣,我們檢查錯誤 其次,只要有乙個開放的結果集 由行表示 底層連線就會繁忙,不能用於任何其他查詢。這意味著它在連線池中不可用。如果您使用row next 迭代所有...

PHP連線 查詢MySQL資料庫

conndb.php link mysqli connect localhost root password database 連線資料庫 mysqli select db link,database 選擇資料庫 mysqli query link,set name gb2312 index.php...