數(shù)據(jù)庫的四種連接方式分別是什么

數(shù)據(jù)庫的四種連接方式分別是:1、inner join內(nèi)連接;2、outer join外連接;3、cross join交叉連接;4、natural join自然連接。

數(shù)據(jù)庫的四種連接方式分別是什么

內(nèi)連接

內(nèi)連接? —拼接查詢結(jié)果 內(nèi)部有聯(lián)系,使用內(nèi)連接 格式: [inner] join —-inner可省

結(jié)果: 從左表中取出每一條記錄,去右表中與所有的記錄進(jìn)行匹配; 匹配必須是某個條件是左表中與右表中相同,才會保留結(jié)果,否則不保留;

基本語法: 左表 [inner] join 右表 on 左表.字段 = 右表.字段;

注意事項(xiàng):

1、on 表示連接條件;條件字段代表相同的業(yè)務(wù)含義 (如 stu.cid 和 cla.id) 學(xué)生stu表中的班級cid 和 班級cla表中的id

2、內(nèi)連接可以沒有連接條件,沒有on之后的內(nèi)容, 這時候系統(tǒng)會保留所有結(jié)果(笛卡爾集)

3、內(nèi)連接可以使用where 代替 on 通常不用where,因?yàn)閣here沒有on效率高 on指匹配到第一條成功的就結(jié)束,其他不匹配; 若沒有,不進(jìn)行匹配 而where會一直匹配,進(jìn)行判斷

4、通常使用字段別名 表別名 在查詢數(shù)據(jù)的時候,不同表有同名字段, 這時候需要加上表名才能區(qū)分, 而若表名太長,使用表別名 若不想使用默認(rèn)的字段名 可以通過[as] 設(shè)置字段別名 。

外連接

外連接 –以某一張表為基表 進(jìn)行相關(guān)查詢 outer join

結(jié)果:以某張表為主,取出里面的所有記錄, 然后每條與另外一張表進(jìn)行連接, 不管能不能匹配上條件,最終都會保留, 能匹配,正確保留; 不能匹配其他表的字段都置空null

分類:分為兩種 左連接,右連接 left join 左外連接—左連接,以左表為主 right join 右外連接—右連接,以右表為主

基本語法: 左表 left/right join 右表 on 左表.字段 = 右表.字段;——條件必須有

交叉連接

交叉連接? 連接查詢 cross join:

交叉連接不帶WHERE 子句,它返回被連接的兩個表所有數(shù)據(jù)行的笛卡爾積,

返回到結(jié)果集合中的數(shù)據(jù)行數(shù)等于第一個表中符合查詢條件的數(shù)據(jù)行數(shù)乘以第二個表中符合查詢條件的數(shù)據(jù)行數(shù)。

自然連接

自然連接?natural join 自然連接

就是系統(tǒng)自動匹配連接條件 系統(tǒng)以字段名字作為匹配模式(同名字段作為字段,多個同名字段都作為條件)

自然連接:可以分為 自然內(nèi)連接 和 自然外連接 內(nèi)連接 natural left join 自然左外連接

其實(shí):內(nèi)連接和外連接都可以模擬自然連接,

使用同名字段,合并字段 左表 left/ right inner join 右表 on using(字段名) —–使用同名字段,合并字段

–自然內(nèi)連接 select * from stu natural join cla;

-自然左外連接 select * from stu natural left join cla;

–外連接模擬自然左外連接 select * from stu left join cla using(id);?

?

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊12 分享