MySQL learning04 集合運算

2021-10-12 16:27:13 字數 1397 閱讀 6681

sql語句的union會對兩個查詢的結果集進行合併去重,這種去重不僅會去掉兩個結果集相互重複的,還會去掉乙個結果集中的重複行。若要不去重的並集,則需使用union all。union一般是將代表相同屬性的列合併在一起顯示,但即使資料型別不一樣,也能在同一列顯示(會進行隱式型別轉換)。

mysql8.0不支援交運算intersect和減運算except。

except可以用not in來代替,而集合的intersect可以用集合的並去掉集合的對稱差來實現。

from

《表1>

inner

join

《表2>

on《連線條件》

--注意:

必須使用on字句來指定鏈結條件(可以等值鏈結,也可以非等值鏈結)。

select字句中的列最好按照表名.列名的格式來使用(為了防止鏈結的表中有相同的列,其次能一目了然看出每一列是屬於哪張表的)。

自然聯結是內鏈結的一種特例,當兩個表進行自然連線時,會按照兩個表中都包含的列名來進行等值內鏈結(注意:兩個缺失值用等號進行比較,結果不為真),此時無需用on字句來指定鏈結條件。

內鏈結會丟棄兩張表中不滿足on條件的行,外連線會根據外鏈結的種類有選擇地保留無法匹配到的行。

按照保留的行位於哪張表,外鏈結有三種形式:左鏈結、右鏈結、全外鏈結。左鏈結會儲存左表中無法按照on字句匹配到的行,此時對應右表的行均為缺失值;右鏈結則會儲存右表中無法按照on字句匹配到的行,相應的行用缺失值填充。全外鏈結能用on關聯到的就把左表和右表的內容在一行內顯示,不能被關聯到的就分別顯示,然後把多餘的列用缺失值填充。但是mysql8.0目前不支援全外鏈結,可以對左鏈結和右連線的結果進行union來實現全外鏈結。

--左鏈結

from

《表1>

left

outer

join

《表2>

on《鏈結條件》

--右鏈結

from

《表1>

right

outer

join

《表2>

on《鏈結條件》

--全外鏈結

from

《表1>

full

outer

join

《表2>

on《鏈結條件》

與自身進行鏈結,自聯結並不是區分於內鏈結和外鏈結的第三種鏈結,自鏈結可以是外聯結也可以是內鏈結。

交叉鏈結又叫笛卡爾積,兩個集合做笛卡爾積就是使用集合a中的每乙個元素與集合b中的每乙個元素組成乙個有序的組合。結果的行數時兩張表中行數的乘積。

from

《表1>

cross

join

《表2>

筆記 網路04

看了 漫談程式設計師系列 程式設計師的生活就這樣嗎 很是感觸,想想,大多數搞軟體開發的同事們,能力一般,很多時候,想漲工資,也是很努力的,但並不是萬事如願以償 就算出成績了,還得遇到個好的老闆,好的公司,不然也是死翹翹的 不管怎麼樣,我們就得抱著一顆努力樂觀的心態,在工作中,要找準方法,提高效率,多...

04 記憶體管理

cocos 採用的是引用計數管理,自動釋放 1.new 乙個ref物件,pobj 的引用計數為1 2.呼叫了autorelease 將該物件 pobje 的位址新增到poolmanager getinstance getcurrentpool 中 3.在pool 中使用vector來儲存 4.當di...

04 統計判決

先驗概率 識別系統預先已知的或者可以估計的模式屬於某種型別的概率 p w i sum c p w i 1 類條件概率密度函式 模式樣本x屬於某類條件下出現的概率密度分布函式 p x w i 後驗概率 在某個具體的模式樣本x條件下,該樣本屬於某種型別的概率 p w i x sum c p w i x ...