關於連線 JOIN(二)

2021-09-30 03:57:11 字數 1193 閱讀 3280

通常我們不得不從兩個或更多的表中選取資料使查詢結果更完整。這時便需要使用連線查詢(join)。

資料庫中的表通過關鍵字相互關聯。主鍵是所有列中擁有唯一值列。每乙個主鍵值必須是表中唯一,

目的是為了把數跨不同表的資料,在不重複資源的情況下繫結在一起。

下面的"employees"表中,"employee_id"是主鍵,意味著沒有任何兩條記錄會有相同的employee_id值。

它能區別當兩個人名字相同時的記錄。

看以下例項注意:

語法

select field1, field2, field3

from first_table

right join second_table

on first_table.keyfield = second_table.foreign_keyfield

列出所有訂單及訂單所屬人的人名

select employees.name, orders.product

from employees

right join orders

on employees.employee_id=orders.employee_id

右連線返回第二個表(orders)中所有,即使在第乙個表employees中沒有符合條件的記錄。

如果orders表中存在不匹配employees表的記錄,這些記錄也會被列出來。

result

nameproduct

hansen, ola

printer

svendson, stephen

table

svendson, stephen

chair

查詢定購產品名為"printer"的人名

select employees.name

from employees

inner join orders

on employees.employee_id=orders.employee_id

where orders.product = 'printer'

result

name

hansen, ola

關於連線的認識

笛卡爾積 會先產生m n條記錄,再根據後面的條件進行篩選 左連線 表a left outer join 表b on 條件 where 他會先根據on 後面的條件進行篩選 他會以表a為主,當表a中有的,b中沒有的會在結果中出現 b的資料用null,但a中沒有,b中有的不會出現 右連線 與左連線相反,他...

關於連線查詢 join left join

進行連線查詢時,先保證待連線表的 engine 和default charset 保持一致 可有效提速 保證 on 條件列的索引 重要!列出表的資訊 show create table table name show index from table name mysql的關聯演算法是 nest l...

關於連線池

對於複雜的web英語,訪問資料庫會比較頻繁,如果每乙個連線都需要連線資料庫然後斷開,對資源的消耗是巨大的。連線復用。通過建立乙個資料庫連線池以及一套連線使用管理策略,使得乙個資料庫連線可以得到高效 安全的復用,避免了資料庫連線頻繁建立 關閉的開銷。對於共享資源,有乙個很著名的設計模式 資源池。該模式...