數(shù)據(jù)庫 關(guān)系連接
更新時(shí)間:2009年09月09日 09:18:25 作者:
數(shù)據(jù)庫 關(guān)系連接,多表查詢時(shí)需要用到的一些東西。
連接分類
關(guān)系間的連接分為內(nèi)連接(inner join)和外連接(outer join)。
外連接又可分為:left outer join,right outer join和full outer join。
內(nèi)連接計(jì)算方法:
如果不加條件將會產(chǎn)生笛卡爾積;
如果有連接條件,按照下一節(jié)"連接條件"的規(guī)則進(jìn)行運(yùn)算,符合條件的元組放入結(jié)果關(guān)系中。
left outer join 計(jì)算過程:
1)計(jì)算相同連接條件下的內(nèi)連接,將符合條件的元組放入結(jié)果關(guān)系中;
2)如果左關(guān)系中有元組不符合條件,將之放入結(jié)果關(guān)系中,余下的用NULL補(bǔ)足
right outer join 計(jì)算過程:
1)計(jì)算相同連接條件下的內(nèi)連接,將符合條件的元組放入結(jié)果關(guān)系中;
2)如果右關(guān)系中有元組不符合條件,將之放入結(jié)果關(guān)系中,余下的用NULL補(bǔ)足
full outer join
1)計(jì)算相同連接條件下的內(nèi)連接,將符合條件的元組放入結(jié)果關(guān)系中;
2)如果左、右關(guān)系中有元組不符合條件,將之放入結(jié)果關(guān)系中,余下的用NULL補(bǔ)足
as用來修改連接后結(jié)果關(guān)系的關(guān)系名稱以及屬性名稱。
連接條件
關(guān)系之間的連接是可以有條件的,外連接必須要加條件,內(nèi)連接如果不加條件將會產(chǎn)生笛卡爾積。
有哪些連接條件呢?
natural --
1)兩個(gè)關(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不能在同時(shí)使用,可以先將natural join語句做成一個(gè)view,然后再使用left outer join
join 默認(rèn)為inner join
關(guān)系間的連接分為內(nèi)連接(inner join)和外連接(outer join)。
外連接又可分為:left outer join,right outer join和full outer join。
內(nèi)連接計(jì)算方法:
如果不加條件將會產(chǎn)生笛卡爾積;
如果有連接條件,按照下一節(jié)"連接條件"的規(guī)則進(jìn)行運(yùn)算,符合條件的元組放入結(jié)果關(guān)系中。
left outer join 計(jì)算過程:
1)計(jì)算相同連接條件下的內(nèi)連接,將符合條件的元組放入結(jié)果關(guān)系中;
2)如果左關(guān)系中有元組不符合條件,將之放入結(jié)果關(guān)系中,余下的用NULL補(bǔ)足
right outer join 計(jì)算過程:
1)計(jì)算相同連接條件下的內(nèi)連接,將符合條件的元組放入結(jié)果關(guān)系中;
2)如果右關(guān)系中有元組不符合條件,將之放入結(jié)果關(guān)系中,余下的用NULL補(bǔ)足
full outer join
1)計(jì)算相同連接條件下的內(nèi)連接,將符合條件的元組放入結(jié)果關(guān)系中;
2)如果左、右關(guān)系中有元組不符合條件,將之放入結(jié)果關(guān)系中,余下的用NULL補(bǔ)足
as用來修改連接后結(jié)果關(guān)系的關(guān)系名稱以及屬性名稱。
連接條件
關(guān)系之間的連接是可以有條件的,外連接必須要加條件,內(nèi)連接如果不加條件將會產(chǎn)生笛卡爾積。
有哪些連接條件呢?
natural --
1)兩個(gè)關(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不能在同時(shí)使用,可以先將natural join語句做成一個(gè)view,然后再使用left outer join
join 默認(rèn)為inner join
相關(guān)文章
數(shù)據(jù)庫運(yùn)維人員DBA工作總結(jié)
中大型公司都會有一些專攻數(shù)據(jù)庫方面的牛人,專門的職位叫做DBA,對于公司的DBA他們的價(jià)值不可小覷,只要是數(shù)據(jù)庫,就有吞吐量的限制,數(shù)據(jù)庫訪問瓶頸便是自然流量增長或者流量突增造成的2023-10-10
詳解 MapperScannerConfigurer之sqlSessionFactory注入方式
這篇文章主要介紹了詳解 MapperScannerConfigurer之sqlSessionFactory注入方式的相關(guān)資料,需要的朋友可以參考下2017-04-04
數(shù)據(jù)分析數(shù)據(jù)庫ClickHouse在大數(shù)據(jù)領(lǐng)域應(yīng)用實(shí)踐
這篇文章主要為大家介紹了數(shù)據(jù)分析數(shù)據(jù)庫ClickHouse在大數(shù)據(jù)領(lǐng)域應(yīng)用實(shí)踐,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04
SQL注入篇學(xué)習(xí)之盲注/寬字節(jié)注入
盲注是注入的一種,指的是在不知道數(shù)據(jù)庫返回值的情況下對數(shù)據(jù)中的內(nèi)容進(jìn)行猜測,實(shí)施SQL注入,下面這篇文章主要給大家介紹了關(guān)于SQL注入篇之盲注/寬字節(jié)注入的相關(guān)資料,需要的朋友可以參考下2022-03-03

