『数据库』朴实无华的数据库多表查询,连接查询、笛卡尔积
『數(shù)據(jù)庫』 樸實(shí)無華且枯燥的數(shù)據(jù)庫教程–入門必看!(不收藏,真的吃虧了)
文章目錄
- 一、交
- 二、并
- 三、差
- 四、笛卡爾積
- 五、連接查詢
一、交
(會用到連接運(yùn)算,固定寫法,連接運(yùn)算在下面不用著急看)
先假設(shè)兩張表:
Table NSA1:
| 張三 | 男 | 18 |
| 李四 | 跨性別者 | 21 |
| 王五 | 女 | 18 |
| 韓七 | 男 | 12 |
Table NSA2:
| 張三 | 男 | 18 |
| 李四 | 男 | 21 |
| 王五 | 女 | 18 |
| 趙六 | 女 | 18 |
| 韓七 | 女 | 12 |
等價(jià)于
SELECT a.Name,a.Sex FROM NSA1 a INNER JOIN NSA2 b USING(Name ,Sex )| 張三 | 男 | 18 |
| 王五 | 女 | 18 |
二、并
先假設(shè)兩張表:
Table NSA1:
| 張三 | 男 | 18 |
| 李四 | 男 | 21 |
| 王五 | 女 | 18 |
| 韓七 | 男 | 12 |
Table NSA2:
| 張三 | 男 | 18 |
| 李四 | 男 | 21 |
| 王五 | 女 | 18 |
| 趙六 | 女 | 18 |
| 韓七 | 男 | 12 |
| 張三 | 男 | 18 |
| 李四 | 男 | 21 |
| 王五 | 女 | 18 |
| 韓七 | 男 | 12 |
| 張三 | 男 | 18 |
| 李四 | 男 | 21 |
| 王五 | 女 | 18 |
| 趙六 | 女 | 18 |
| 韓七 | 男 | 12 |
如果執(zhí)行:
SELECT Name,Sex FROM NSA1 UNION SELECT Name,Sex FROM NSA1| 張三 | 男 | 18 |
| 李四 | 男 | 21 |
| 王五 | 女 | 18 |
| 韓七 | 男 | 12 |
| 趙六 | 女 | 18 |
注釋:union自帶去重
三、差
(會用到連接運(yùn)算,固定寫法,連接運(yùn)算在下面不用著急看)
先假設(shè)兩張表:
Table NSA1:
| 張三 | 男 | 18 |
| 李四 | 男 | 21 |
| 王五 | 女 | 18 |
| 趙六 | 女 | 18 |
| 韓七 | 男 | 12 |
Table NSA2:
| 張三 | 男 | 18 |
| 李四 | 男 | 21 |
| 王五 | 女 | 18 |
| 韓七 | 男 | 12 |
| 趙六 | 女 | 18 |
四、笛卡爾積
其實(shí)所有的鏈接運(yùn)算都是都是建立在笛卡爾積上的,笛卡爾積就是不舍棄任何全外連接,可以這么理解,但是cross join 象征著返回所有的情況,默認(rèn)不使用 where進(jìn)行過濾的。
舉例:
Table Name :
| 朱小明 |
| 劉小華 |
Table Subject:
| 語文 |
| 數(shù)學(xué) |
| 法律 |
| 劉小華 | 數(shù)學(xué) |
| 劉小華 | 法律 |
| 劉小華 | 語文 |
| 朱小明 | 法律 |
| 朱小明 | 語文 |
| 朱小明 | 數(shù)學(xué) |
五、連接查詢
連接運(yùn)算是關(guān)系的二目運(yùn)算.關(guān)系R與關(guān)系S的連接運(yùn)算是從兩個(gè)關(guān)系的廣義笛卡爾積中選取屬性間滿足一定條件(稱為連接條件,記為AθB)的元組形成一個(gè)新關(guān)系。
①等值連接
等值連接是從關(guān)系R與S的廣義笛卡爾積中選取A、B屬性相等的那些元組,按照屬性相同的行將兩(或以上)張表元組匹配連接;
舉個(gè)例子
ID_Name表
| 1 | 大好人 |
| 2 | 大壞蛋 |
| 3 | 豬八戒 |
| 4 | 孫悟空 |
| 5 | 沙和尚 |
| 7 | 唐三藏 |
| 8 | 武松 |
ID_MingZhu 表
| 3 | 西游記 |
| 4 | 西游記 |
| 5 | 西游記 |
| 7 | 西游記 |
| 8 | 水滸傳 |
| 3 | 豬八戒 | 3 | 西游記 |
| 4 | 孫悟空 | 4 | 西游記 |
| 5 | 沙和尚 | 5 | 西游記 |
| 7 | 唐三藏 | 7 | 西游記 |
| 8 | 武松 | 8 | 水滸傳 |
② 自然連接
自然連接是特殊的等值連接,要求兩個(gè)關(guān)系中進(jìn)行比較的分量必須是同名的屬性組,并且在結(jié)果中把重復(fù)的屬性列去掉。
舉個(gè)例子:
ID_Name表
| 1 | 大好人 |
| 2 | 大壞蛋 |
| 3 | 豬八戒 |
| 4 | 孫悟空 |
| 5 | 沙和尚 |
| 7 | 唐三藏 |
| 8 | 武松 |
ID_MingZhu 表
| 3 | 西游記 |
| 4 | 西游記 |
| 5 | 西游記 |
| 7 | 西游記 |
| 8 | 水滸傳 |
| 3 | 豬八戒 | 西游記 |
| 4 | 孫悟空 | 西游記 |
| 5 | 沙和尚 | 西游記 |
| 7 | 唐三藏 | 西游記 |
| 8 | 武松 | 水滸傳 |
③ 左外連接
將返回右表的所有行。如果左表的某行在右表中沒有匹配行,則將為右表返回空值左連接:
例子:
ID_Name表
| 1 | 大好人 |
| 2 | 大壞蛋 |
| 3 | 豬八戒 |
| 4 | 孫悟空 |
| 5 | 沙和尚 |
| 7 | 唐三藏 |
| 8 | 武松 |
ID_MingZhu 表
| 3 | 西游記 |
| 4 | 西游記 |
| 5 | 西游記 |
| 7 | 西游記 |
| 8 | 水滸傳 |
| 9 | 紅樓夢 |
| 1 | 大好人 | NULL | NULL |
| 2 | 大壞蛋 | NULL | NULL |
| 3 | 豬八戒 | 3 | 西游記 |
| 4 | 孫悟空 | 4 | 西游記 |
| 5 | 沙和尚 | 5 | 西游記 |
| 7 | 唐三藏 | 7 | 西游記 |
| 8 | 武松 | 8 | 水滸傳 |
④ 右外連接
將返回右表的所有行。如果右表的某行在左表中沒有匹配行,則將為左表返回空值;
例子
ID_Name表
| 1 | 大好人 |
| 2 | 大壞蛋 |
| 3 | 豬八戒 |
| 4 | 孫悟空 |
| 5 | 沙和尚 |
| 7 | 唐三藏 |
| 8 | 武松 |
ID_MingZhu 表
| 3 | 西游記 |
| 4 | 西游記 |
| 5 | 西游記 |
| 7 | 西游記 |
| 8 | 水滸傳 |
| 9 | 紅樓夢 |
| 3 | 豬八戒 | 3 | 西游記 |
| 4 | 孫悟空 | 4 | 西游記 |
| 5 | 沙和尚 | 5 | 西游記 |
| 7 | 唐三藏 | 7 | 西游記 |
| 8 | 武松 | 8 | 水滸傳 |
| NULL | NULL | 9 | 紅樓夢 |
- 全外連接。
左表和右表都不做限制,所有的記錄都顯示,兩表不足的地方用null 填充
例子
ID_Name表
| 1 | 大好人 |
| 2 | 大壞蛋 |
| 3 | 豬八戒 |
| 4 | 孫悟空 |
| 5 | 沙和尚 |
| 7 | 唐三藏 |
| 8 | 武松 |
ID_MingZhu 表
| 3 | 西游記 |
| 4 | 西游記 |
| 5 | 西游記 |
| 7 | 西游記 |
| 8 | 水滸傳 |
| 9 | 紅樓夢 |
| 1 | 大好人 | NULL | NULL |
| 2 | 大壞蛋 | NULL | NULL |
| 3 | 豬八戒 | 3 | 西游記 |
| 4 | 孫悟空 | 4 | 西游記 |
| 5 | 沙和尚 | 5 | 西游記 |
| 7 | 唐三藏 | 7 | 西游記 |
| 8 | 武松 | 8 | 水滸傳 |
| NULL | NULL | 9 | 紅樓夢 |
寫在最后:
Name:風(fēng)骨散人,目前是一名雙非在校大學(xué)生,預(yù)計(jì)考研,熱愛編程,熱愛技術(shù),喜歡分享,知識無界,希望我的分享可以幫到你!名字的含義:我想有一天我能有能力隨心所欲不逾矩,不總是向生活低頭,有能力讓家人擁有富足的生活而不是為了生計(jì)而到處奔波。“世人慌慌張張,不過是圖碎銀幾兩。偏偏這碎銀幾兩,能解世間惆悵,可讓父母安康,可護(hù)幼子成長 …”
文章主要內(nèi)容:
Python,C++,C語言,JAVA,C#等語言的教程
ACM題解、模板、算法等,主要是數(shù)據(jù)結(jié)構(gòu),數(shù)學(xué)和圖論
設(shè)計(jì)模式,數(shù)據(jù)庫,計(jì)算機(jī)網(wǎng)絡(luò),操作系統(tǒng),計(jì)算機(jī)組成原理
Python爬蟲、深度學(xué)習(xí)、機(jī)器學(xué)習(xí)
計(jì)算機(jī)系408考研的所有專業(yè)課內(nèi)容
目前還在更新中,先關(guān)注不迷路。微信公眾號,cnblogs(博客園),CSDN同名“風(fēng)骨散人”
如果有什么想看的,可以私信我,如果在能力范圍內(nèi),我會發(fā)布相應(yīng)的博文!
感謝大家的閱讀!😘你的點(diǎn)贊、收藏、關(guān)注是對我最大的鼓勵!
總結(jié)
以上是生活随笔為你收集整理的『数据库』朴实无华的数据库多表查询,连接查询、笛卡尔积的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 快手设置密码在哪里设置
- 下一篇: 『数据库』朴实无华且枯燥的数据库文章--