sql中的連線

2021-06-22 05:44:47 字數 2001 閱讀 3778

一般基於 ansi 標準的 sql 列出了五種 join 方式: 

內連線(inner join)

全外連線(full outer join/full join)

左外連線(left outer join/left join)

右外連線(right outer join/right join)

交叉連線(cross join)

注意:沒有左內連線盒右內連線

左向外聯接的結果集包括 left outer 子句中指定的左表的所有行,而不僅僅是聯接列所匹配的行。

如果左表的某行在右表中沒有匹配行,則在相關聯的結果集行中右表的      所有選擇列表列均為空值。

右向外聯接是左向外聯接的反向聯接。將返回右表的所有行。如果右表的某行在左表中沒有匹配行,則將為左表返回空值。

完整外部聯接返回左表和右表中的所有行。當某行在另乙個表中沒有匹配行時,則另乙個表的選擇列表列包含空值。如果表之間有匹配行,

則整個結果集行包含基表的資料值。

mysql不支援直接的全連線即:select * from jobmark full outer join student on  jobmark.id=student.id 會報錯但是可以使用合併連線來實現

內連線為 兩個表中必須都同時滿足條件時,也可以說是兩個表中都必須在另乙個表中有對應的項,而不能為空。才返回該行。

select * from jobmark inner join student on  jobmark.id=student.id 或者

對等價連線的進一步特例化,匹配相同的列(只要名字相同就可以,型別不同也可以)。

select * from jobmark natural join student

表資料

查詢結果:

交叉連線即返回這兩個集合的笛卡爾積。這其實等價於內連線的鏈結條件為"永真",或連線條件不存在.

select * from jobmark cross join student 

等同於select * from jobmark,student 

SQL 中的連線

連線是運算元據庫經常要用到的,分了很多種,各有各的用處,為避免以後混淆,特將概念記錄與此,供日後查閱。在sql server中,通過連線運算可以實現多表查詢,連線是關聯式資料庫模型的主要特點,也是它區別其他資料庫管理系統的乙個標誌。一般連線的寫法如下 from join table join typ...

sql中的連線查詢

create table 產品 產品編號 char 9 not null,產品名稱 varchar 20 not null go create table 產品銷量 產品編號 char 9 not null,銷量 int go insert into 產品 values 001 顯示器 insert...

SQL中的連線查詢

1 整體說明 1 所謂連線,按字面理解就是將表拼在一起,當做一張表使用 2 內連線 顧名思義,也就是兩張表的重疊部分 即青色部分 都滿足才行 3 左外連線 也就是將左邊的表也連線起來,結果就是所有左邊的資料加上滿足重疊部分條件的右邊部分 4 右外連線 右邊所有表的資料,加上滿足重疊部分條件的左邊的資...