mysql 表的連線方式 Mysql表的連線方式

2021-10-20 22:35:13 字數 1496 閱讀 8213

mysql表的連線方式

1.交叉連線(笛卡爾積)

交叉聯接返回左表中的所有行,左表中的每一行與右表中的所有行組合。交叉聯接也稱作笛卡爾積。

sql語句:select * from 表1,表2; 隱士笛卡爾積

select * from 表1 crross join 表2;  顯示笛卡爾積

不帶條件的內連線也是笛卡爾積:select * from 表1 inner join 表2;

2.內連線 inner join  on

sql語句:select * from 表1 inner join 表2  on 表1.id=表2.id;

注意:隱士笛卡爾積可以在後面跟where查詢條件,查詢結果和內連線相同(查詢條件相   同),不能用on查詢條件。顯示笛卡爾積where和on都不能用,內連線inner join   後面可跟where查詢條件和on查詢條件,此處也可以說成笛卡爾帶有查詢條件後           是內連線。

3.自然連線natural join(natural join在sql server 中不支援).....查詢後的結果沒看明白

是一種特殊的等值連線,要求兩個關係表中進行比較的屬性組必須是名稱相同的屬性組,並且在結果中把重複的屬性列去掉(即:留下名稱相同的屬性組中的其中一組)。兩張表中的名稱和型別完全一致的列進行內連線

sql語句:select *  from 表1 natrual  join 表2;

4.外連線分為全外連線,左外連線,右外連線on後面跟查詢條件,不能用where等

全外連線 :select * from 表1 full join 表2  on 表1.id=表2.id;

全外連線在mysql中不能用,在oracle中可以使用;查詢結果為左右的資料都顯示,如果左邊對應的右邊沒有與之相匹配的資料,則為null,同理左邊的為nul。l

左外連線:select * from 表1 left join 表2  on 表1.id=表2.id;

查詢結果為:左邊的全部顯示,右邊的如果全部滿足左邊話,就和左邊的顯示資料條數相同;如果右邊的不完全滿足左邊的話,則左邊的表資料對應的右邊為null;

右外連線:select * from 表1 right  join 表2  on 表1.id=表2.id;

查詢結果為:右邊的全部顯示,左邊的如果全部滿足右邊話,就和右邊的顯示資料條數相同;如果左邊的不完全滿足右邊的話,則右邊的表資料對應的左邊為null;

5.union 和union all

union和union all是聯合查詢,union聯合查詢的條件是兩個表的字段個數都是相同的

union sql語句:select * from 表1 union select * from 表2;

union all sql語句:select * from 表1 union all select * from 表2;

union的查詢結果為,如果兩個表中右相同資料的話,則之顯示一條,將兩個表合稱為乙個表。

union all的查詢結果為,如果兩個表中右相同資料的話,則全部顯示,將兩個表合稱為乙個表。

mysql的表連線方式

這裡有兩張表tablea和tableb,分別是姓名表和年齡表,用於我們例子的測試資料 表連線有幾種?sql表連線分成外連線 內連線和交叉連線。一.外連線 概述 外連線包括三種,分別是左外連線 右外連線 全外連線。對應的sql關鍵字 left right full outer join,通常我們都省略...

mysql 連線 MySQL的連線方式

連線mysql操作是連線程序和mysql資料庫例項進行通訊。從開發的角度來說,本質上是程序通訊。常用的程序通訊方式有管道 命名管道 命名字 tcp ip套接字 unix網域名稱套接字。mysql提供的連線方式從本質上看都是上述提及的程序通訊方式。tcp ip tcp ip套接字方式是mysql在任何...

python連線mysql並提交mysql事務示例

複製 如下 coding utf 8 import sys import mysqldb reload sys sys.setdefaultencoding utf 8 class db object def init self,host 127.0.0.1 port 3306,user root ...