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