資料庫的查詢方式

2021-08-02 22:35:05 字數 1840 閱讀 7873

內連線

外連線

左外連線

右外連線

全外連線

自然連線

內連線有三種表示方式:

1. 方言版(不一定適用於所有資料庫)

select *

from table1 t1, table2 t2

where t1.column1=t2.column2;

上述**會先將table1的每一行和table2的每一行進行笛卡爾積組合,然後將符合條件的行篩選出來。

2. 標準版

select *

from table1 t1 inner

join table2 t2

on t1.column1=t2.column2;

上述**會先將table1的每一行和table2的每一行進行笛卡爾積組合,然後將符合條件的行篩選出來。

3. 自然連線版

select *

from table1 t1 natural

join table2 t2;

上述**會將table1和table2中所有共同屬性列的值都相同的行進行組合並篩選出來。

其中natural join和natural inner join是一樣的,因為自然連線預設就是內連線。

1. 左外連線

select *

from table1 t1 left

outer

join table2 t2

on t1.column1=t2.column2;

左表(即t1)是主表,每一行記錄無論是否符合條件都會被查詢出來。

右表(即t2)是從表,只有符合條件才能和主表記錄連線。

若主表中的記錄無法在從表中找到匹配,從表對應屬性值為null。

2. 左外自然連線版

select *

from table1 t1 natural

left

outer

join table2 t2;

大致與左外連線相同,區別只在於篩選條件。左外連線需要on語句,左外自然連線沒有on語句,左主右從,只有所有共同屬性列的值都相同才能連線,否則為null。

3. 右外連線

select *

from table1 t1 right

outer

join table2 t2

on t1.column1=t2.column2;

右表(即t2)是主表,每一行記錄無論是否符合條件都會被查詢出來。

左表(即t1)是從表,只有符合條件才能和主表記錄連線。

若主表中的記錄無法在從表中找到匹配,從表對應屬性值為null。

4. 右外自然連線版

select *

from table1 t1 natural

right

outer

join table2 t2;

大致與右外連線相同,區別只在於篩選條件。右外連線需要on語句,右外自然連線沒有on語句,右主左從,只有所有共同屬性列的值都相同才能連線,否則為null。

5. 全連線

select *

from table1 t1 full

outer

join table2 t2

on t1.column1=t2.column2;

返回左表和右表中的所有行。當某行在另乙個表中沒有匹配行時,則另乙個表的屬性值為null。

相當於左外連線的結果表和右外連線的結果錶用union連線。

(union將兩個表連線後刪除重複項,union all將兩個表連線但不會刪除重複項)

資料庫查詢方式

連線就是指兩個或2個以上的表 資料來源 連線起來成為乙個資料來源 實際上,兩個表的完全的連線是這樣的乙個過程 左邊的表的每一行,跟右邊的表的每一行,兩兩互相 橫向對接 後所得到的所有資料行的結果。注意 連線之後,並非形成了乙個新的資料表,而只是一種 記憶體形態 from 表 1 連線方式 join ...

編碼方式 查詢資料庫的編碼方式

1 檢視mysql資料庫編碼 show variables like character set database 或者 show create database 資料庫名稱 2 檢視mysql中某張表的編碼 show create table 表名show create database 資料庫名...

ThinkPhp查詢資料庫的幾種方式

thinkphp內建了非常靈活的查詢方法,可以快速的進行資料查詢操作,查詢條件可以用於讀取 更新和刪除等操作,主要涉及到where方法等連貫操作即可,無論是採用什麼資料庫,你幾乎採用一樣的查詢方法 個別資料庫例如mongo在表示式查詢方面會有所差異 系統幫你解決了不同資料庫的差異性,因此我們把框架的...