教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢/投訴熱線:400-618-4000

Java培訓(xùn)之連接查詢之內(nèi)連接(二)

更新時(shí)間:2016年06月24日15時(shí)11分 來(lái)源:傳智播客java培訓(xùn)學(xué)院 瀏覽次數(shù):

3.自然連接

自然連接(Natural join)是一種特殊的等值連接,它要求兩個(gè)關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,并且在結(jié)果中把重復(fù)的屬性列去掉。而等值連接并不去掉重復(fù)的屬性列。
自然連接的語(yǔ)法如下:
  • SELECT * FROM 表1 別名1 NATURAL JOIN 表2 別名2
(1)將emp表中的deptno列名修改為dp,如圖1-4所示:

圖1-4 修改列名
(2)查詢每個(gè)員工的信息及所在部門(mén)信息,使用自然連接查詢,對(duì)應(yīng)的sql語(yǔ)句是:select * from emp e NATURAL JOIN dept d,查詢結(jié)果如圖1-5所示:

圖1-5 自然連接
自然連接查詢的步驟:
  • 第一步:做笛卡爾積;
  • 第二步:做等值判斷,例如emp.某個(gè)列名=dept.某個(gè)列名,要求兩個(gè)表進(jìn)行比較的列名相同;
  • 第三步:去掉重復(fù)的的屬性列。
圖1-5中,查詢結(jié)果的列數(shù)是11,emp表的總列數(shù)是8,dept表的總列數(shù)是3,也就是說(shuō)查詢結(jié)果包含兩個(gè)表的所有列。并且查詢結(jié)果的記錄數(shù)是60,出現(xiàn)這種情況的原因是emp表中沒(méi)有與dept表相同的列,我們將emp表中的deptno列名修改為dp,因此在進(jìn)行自然連接時(shí),查詢的第二步與第三步就無(wú)法進(jìn)行,只做了第一步,因此結(jié)果就是兩個(gè)表的笛卡爾積。
(3)將emp表的列名dp修改為deptno,然后再進(jìn)行自然連接,查詢每個(gè)員工的姓名、工資以及所在部門(mén)的名稱,查詢結(jié)果如圖1-6所示:

圖1-6 自然連接
圖1-6中,查詢結(jié)果的總記錄數(shù)是14,每個(gè)員工的相關(guān)信息都正確的查詢出來(lái)了。

本文版權(quán)歸傳智播客Java培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!
作者:傳智播客Java培訓(xùn)學(xué)院
首發(fā):http://www.xamj520.com/javaee
0 分享到:
和我們?cè)诰€交談!