MySQL 連線查詢

2021-10-23 18:52:53 字數 913 閱讀 1961

感冒有點嚴重,最近又有考試要準備,學習狀態有點差,只看了一點連線查詢的內容。

前面學習的都是對一張表中的內容進行查詢,當我們查詢的內容涉及到多張表時,就要用到連線查詢了。

首先,如果查詢了多張表但是沒有設定有效的連線條件,會導致多張表所有行實現完全連線,也就是笛卡爾乘積現象。

最後顯示的表的行數會是各表行數的乘積,包含了各表的全部內容。

對於sql92和sql99,連線查詢有所不同。

在sql92中,連線查詢只有等值連線、非等值連線和自連線,支援一部分外連線(用於oracle、sqlserver,mysql不支援)。

在sql99中則分為內連線、外連線和交叉連線,其中內連線包括了等值連線、非等值連線和自連線,外連線分為左外連線、右外連線,還有全外連線(mysql中不支援)。

sql92中連線查詢的表名都放在from後面,連線條件都放在where後面,

sql99中表名通過from (inner、outer、cross)join等進行連線,連線條件則放在on後面。

在內連線中,表的順序不影響查詢結果,內連線的結果是多表的交集。

外連線中:

①查詢的結果=主表中所有的行,如果從表和它匹配的將顯示匹配行,如果從表沒有匹配的則顯示null。

②left join 左邊的就是主表,right join 右邊的就是主表,

full join 兩邊都是主表;

③一般用於查詢除了交集部分的剩餘的不匹配的行(通過where篩選主鍵為null或不為null)。

連線查詢效果總結:

mysql連線查詢例項 MySQL連線查詢例項詳解

建立表suppliers create table suppliers s id int not null auto increment,s name char 50 not null,s city char 50 null,s zip char 10 null,s call char 50 not...

mysql連線查詢例項 MySQL連線查詢例項詳解

建立表suppliers create table suppliers s id int not null auto increment,s name char 50 not null,s city char 50 null,s zip char 10 null,s call char 50 not...

mysql連線查詢on MySQL連線查詢例項詳解

建立表suppliers create table suppliers s id int not null auto increment,s name char 50 not null,s city char 50 null,s zip char 10 null,s call char 50 not...