數(shù)據(jù)庫 關(guān)系連接
更新時間:2009年09月09日 09:18:25 作者:
數(shù)據(jù)庫 關(guān)系連接,多表查詢時需要用到的一些東西。
連接分類
關(guān)系間的連接分為內(nèi)連接(inner join)和外連接(outer join)。
外連接又可分為:left outer join,right outer join和full outer join。
內(nèi)連接計算方法:
如果不加條件將會產(chǎn)生笛卡爾積;
如果有連接條件,按照下一節(jié)"連接條件"的規(guī)則進行運算,符合條件的元組放入結(jié)果關(guān)系中。
left outer join 計算過程:
1)計算相同連接條件下的內(nèi)連接,將符合條件的元組放入結(jié)果關(guān)系中;
2)如果左關(guān)系中有元組不符合條件,將之放入結(jié)果關(guān)系中,余下的用NULL補足
right outer join 計算過程:
1)計算相同連接條件下的內(nèi)連接,將符合條件的元組放入結(jié)果關(guān)系中;
2)如果右關(guān)系中有元組不符合條件,將之放入結(jié)果關(guān)系中,余下的用NULL補足
full outer join
1)計算相同連接條件下的內(nèi)連接,將符合條件的元組放入結(jié)果關(guān)系中;
2)如果左、右關(guān)系中有元組不符合條件,將之放入結(jié)果關(guān)系中,余下的用NULL補足
as用來修改連接后結(jié)果關(guān)系的關(guān)系名稱以及屬性名稱。
連接條件
關(guān)系之間的連接是可以有條件的,外連接必須要加條件,內(nèi)連接如果不加條件將會產(chǎn)生笛卡爾積。
有哪些連接條件呢?
natural --
1)兩個關(guān)系(左關(guān)系和友關(guān)系)中所有具有相同的名稱的屬性的值要相等。
2)natural 總是出現(xiàn)在 join語句前面
3)natural的結(jié)果關(guān)系中,相同名稱的屬性只會出現(xiàn)一次
4)natural的結(jié)果關(guān)系中,屬性的排列順序總是按照左關(guān)系優(yōu)先的原則。
5) MySQL中,natural join不能使用on指定其他查詢條件
on--
1)on 用在join語句后面
2)on 后面采用關(guān)系1.屬性a=關(guān)系2.屬性b 的謂詞語法
using--
1)和natural類似,只是顯式指定了屬性名稱
2)如果using也指定了所有相同名稱的屬性,那么和natural相同
MySQL
MySQL中,natural join和 left outer join不能在同時使用,可以先將natural join語句做成一個view,然后再使用left outer join
join 默認為inner join
關(guān)系間的連接分為內(nèi)連接(inner join)和外連接(outer join)。
外連接又可分為:left outer join,right outer join和full outer join。
內(nèi)連接計算方法:
如果不加條件將會產(chǎn)生笛卡爾積;
如果有連接條件,按照下一節(jié)"連接條件"的規(guī)則進行運算,符合條件的元組放入結(jié)果關(guān)系中。
left outer join 計算過程:
1)計算相同連接條件下的內(nèi)連接,將符合條件的元組放入結(jié)果關(guān)系中;
2)如果左關(guān)系中有元組不符合條件,將之放入結(jié)果關(guān)系中,余下的用NULL補足
right outer join 計算過程:
1)計算相同連接條件下的內(nèi)連接,將符合條件的元組放入結(jié)果關(guān)系中;
2)如果右關(guān)系中有元組不符合條件,將之放入結(jié)果關(guān)系中,余下的用NULL補足
full outer join
1)計算相同連接條件下的內(nèi)連接,將符合條件的元組放入結(jié)果關(guān)系中;
2)如果左、右關(guān)系中有元組不符合條件,將之放入結(jié)果關(guān)系中,余下的用NULL補足
as用來修改連接后結(jié)果關(guān)系的關(guān)系名稱以及屬性名稱。
連接條件
關(guān)系之間的連接是可以有條件的,外連接必須要加條件,內(nèi)連接如果不加條件將會產(chǎn)生笛卡爾積。
有哪些連接條件呢?
natural --
1)兩個關(guān)系(左關(guān)系和友關(guān)系)中所有具有相同的名稱的屬性的值要相等。
2)natural 總是出現(xiàn)在 join語句前面
3)natural的結(jié)果關(guān)系中,相同名稱的屬性只會出現(xiàn)一次
4)natural的結(jié)果關(guān)系中,屬性的排列順序總是按照左關(guān)系優(yōu)先的原則。
5) MySQL中,natural join不能使用on指定其他查詢條件
on--
1)on 用在join語句后面
2)on 后面采用關(guān)系1.屬性a=關(guān)系2.屬性b 的謂詞語法
using--
1)和natural類似,只是顯式指定了屬性名稱
2)如果using也指定了所有相同名稱的屬性,那么和natural相同
MySQL
MySQL中,natural join和 left outer join不能在同時使用,可以先將natural join語句做成一個view,然后再使用left outer join
join 默認為inner join
相關(guān)文章
詳解 MapperScannerConfigurer之sqlSessionFactory注入方式
這篇文章主要介紹了詳解 MapperScannerConfigurer之sqlSessionFactory注入方式的相關(guān)資料,需要的朋友可以參考下2017-04-04數(shù)據(jù)分析數(shù)據(jù)庫ClickHouse在大數(shù)據(jù)領(lǐng)域應(yīng)用實踐
這篇文章主要為大家介紹了數(shù)據(jù)分析數(shù)據(jù)庫ClickHouse在大數(shù)據(jù)領(lǐng)域應(yīng)用實踐,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪2022-04-04