第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

sql加入維恩圖

sql加入維恩圖

牧羊人nacy 2019-10-15 10:30:50
我在理解sql中的連接時(shí)遇到了麻煩,并遇到了此映像,我認(rèn)為這可能對我有所幫助。問題是我不完全了解它。例如,圖像右上角的聯(lián)接將整個(gè)B圓圈染成紅色,但僅將A重疊。該圖像使圓圈B成為sql語句的主要焦點(diǎn),但是sql語句本身,從A開頭(從A中選擇,然后加入B),給我?guī)砹讼喾吹挠∠?,即A將成為sql語句的焦點(diǎn)。同樣,下面的圖像僅包含來自B圈的數(shù)據(jù),那么為什么join語句中完全包含A?問題:右上角順時(shí)針工作并在中心結(jié)束,有人可以提供有關(guān)每個(gè)sql映像表示的更多信息,解釋a)為什么在每種情況下都需要聯(lián)接(例如,特別是在沒有從A或B取得數(shù)據(jù)的情況下,即只有A或B而不是都帶有顏色的情況下)b)和其他任何可以闡明為什么圖像很好地表示sql的細(xì)節(jié)
查看完整描述

3 回答

?
收到一只叮咚

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個(gè)贊

我覺得你的主要潛在的困惑是,當(dāng)(例如)只A以紅色突出顯示,你正在做的是指“查詢只返回?cái)?shù)據(jù)來自A ”,但實(shí)際上它的意思是”查詢只返回?cái)?shù)據(jù)的那些情況下,A有記錄 ”。查詢可能仍包含從B.數(shù)據(jù)(有關(guān)情況B并沒有有記錄,查詢將取代NULL。)


同樣,下面的圖像僅包含來自B圈的數(shù)據(jù),那么為什么join語句中完全包含A?


如果您的意思是-圖像A完全是白色的,并且有一個(gè)紅色的月牙形,而該部分與B不重疊A,則:A查詢中出現(xiàn)的原因是,A它如何查找B需要的記錄被排除在外。(如果A未出現(xiàn)在查詢中,則維恩圖將沒有A,只會顯示B,并且無法將所需記錄與不需要的記錄區(qū)分開。)


圖像使圓B看起來像是sql語句的主要焦點(diǎn),但是sql語句本身通過以A開頭(從A選擇,然后聯(lián)接B)向我傳達(dá)了相反的印象,即A將成為焦點(diǎn)sql語句。


非常正確。因此,RIGHT JOINs比較少見。盡管使用a的查詢LEFT JOIN幾乎總是可以重新排序?yàn)槭褂胊 RIGHT JOIN的查詢(反之亦然),但通常人們會使用LEFT JOIN和而不使用來編寫查詢RIGHT JOIN。


查看完整回答
反對 回復(fù) 2019-10-15
?
翻過高山走不出你

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個(gè)贊

我同意Cade所說的維恩圖的局限性??赡芨线m的視覺表示是這樣。


桌子

http://img1.sycdn.imooc.com//5da530840001dcdc02470114.jpg


從交叉聯(lián)接B SQL小提琴中選擇A.顏色,B。顏色

交叉聯(lián)接(或笛卡爾乘積)使用兩個(gè)表中各行的每種組合產(chǎn)生結(jié)果。每個(gè)表有4行,因此結(jié)果產(chǎn)生16行。


http://img1.sycdn.imooc.com//5da5308700015f1801370345.jpg


從A.Colour = B.Colour SQL Fiddle的內(nèi)部聯(lián)接B中選擇A.Colour,B.Colour

內(nèi)部聯(lián)接在邏輯上返回交叉聯(lián)接中與聯(lián)接條件匹配的所有行。在這種情況下有五個(gè)。


http://img1.sycdn.imooc.com//5da5308f0001606501390123.jpg

從A.COLOR NOT IN(“綠色”,“藍(lán)色”)SQL小提琴中的內(nèi)部聯(lián)接B選擇A.Colour,B.Colour

內(nèi)部聯(lián)接條件不必一定是相等條件,也不必引用兩個(gè)表(甚至其中一個(gè)表)的列。A.Colour NOT IN ('Green','Blue')對交叉聯(lián)接的每一行進(jìn)行評估。


http://img1.sycdn.imooc.com//5da530920001f0f301480086.jpg

內(nèi)部聯(lián)接條件的條件1=1對于交叉聯(lián)接中的每一行都為true,因此兩者是等效的(SQL Fiddle)。


從A.Colour = B.Colour SQL Fiddle的左外連接B中選擇A.Colour,B.Colour

外部聯(lián)接以同樣的方式為內(nèi)進(jìn)行邏輯評估只是如果左表行(左連接)連接不從右手表都被保存在結(jié)果與任何行會合NULL的價(jià)值觀右手列。


http://img1.sycdn.imooc.com//5da530950001638601420135.jpghttp://img1.sycdn.imooc.com//5da530990001638601420135.jpg

從A.COLOUR = B.COLOUR的左外連接B中選擇A.Colour,B.Colour B.Colour IS NULL SQL Fiddle

這只是將先前的結(jié)果限制為僅返回其中的行B.Colour IS NULL。在這種特殊情況下,這些行將被保留,因?yàn)樗鼈冊谟覀?cè)表中不匹配,并且查詢返回表中不匹配的單個(gè)紅色行B。這稱為反半連接。


重要的是,為IS NULL測試選擇一列不可為空或連接條件可確保NULL排除任何值的列,以使此模式正確運(yùn)行,并避免僅帶回恰好具有該NULL值的行,這一點(diǎn)很重要列以及未匹配的行。


http://img1.sycdn.imooc.com//5da530a10001c9db01420027.jpg

從A.Colour = B.Colour SQL Fiddle的正確外部聯(lián)接B中選擇A.Colour,B.Colour

右外部聯(lián)接的行為與左外部聯(lián)接類似,不同之處在于它們保留了來自右表的不匹配行,并且null擴(kuò)展了左手列。


http://img1.sycdn.imooc.com//5da530a400014a8e01340131.jpg

從A.Colour = B.Colour SQL Fiddle的完整外部聯(lián)接B中選擇A.Colour,B.Colour

完全外部聯(lián)接將左右聯(lián)接的行為結(jié)合在一起,并保留左右表中不匹配的行。


http://img1.sycdn.imooc.com//5da530a8000159ce01310152.jpg

查看完整回答
反對 回復(fù) 2019-10-15
?
米脂

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超3個(gè)贊

維恩圖適用于表示設(shè)置操作,例如UNION,INTERSECTS,EXCEPT等。


僅在使用EXFT等設(shè)置操作模擬LEFT JOIN WHERE rhs.KEY為NULL的情況下,此圖才是準(zhǔn)確的。


否則會產(chǎn)生誤導(dǎo)。例如,如果聯(lián)接條件不是1:1,則任何聯(lián)接都會導(dǎo)致行成倍增加。但是,只允許集合包含不同的成員,因此不能將它們表示為集合操作。


然后是CROSS JOIN或INNER JOIN ON = 1-這既不類似于此圖所示的INNER JOIN,也不可以通過維恩圖真正描述生成的集合。更不用說所有其他可能的三角連接,自連接和反連接,例如:


lhs INNER JOIN rhs ON rhs.VALUE < lhs.VALUE (triangular)

要么


SELF self1

INNER JOIN SELF self2

    ON self2.key <> self1.key

    AND self1.type = self2.type

(自我交叉和反加入以查找除您之外的所有相似家庭成員-self1和self2是同一集合,結(jié)果是一個(gè)適當(dāng)?shù)淖蛹?/p>


在本教程的前幾分鐘,堅(jiān)持對鍵進(jìn)行聯(lián)接可能會很好,但是這可能會導(dǎo)致學(xué)習(xí)聯(lián)接的含義很差。我認(rèn)為這就是您所發(fā)現(xiàn)的。


維恩圖通??梢杂眠@種方式表示JOIN的想法需要消失。


查看完整回答
反對 回復(fù) 2019-10-15
  • 3 回答
  • 0 關(guān)注
  • 943 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號