日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

『数据库』朴实无华的数据库多表查询,连接查询、笛卡尔积

發(fā)布時(shí)間:2023/12/15 数据库 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 『数据库』朴实无华的数据库多表查询,连接查询、笛卡尔积 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

『數(shù)據(jù)庫』 樸實(shí)無華且枯燥的數(shù)據(jù)庫教程–入門必看!(不收藏,真的吃虧了)

文章目錄

      • 一、交
      • 二、并
      • 三、差
      • 四、笛卡爾積
      • 五、連接查詢

一、交

(會用到連接運(yùn)算,固定寫法,連接運(yùn)算在下面不用著急看)
先假設(shè)兩張表:
Table NSA1:

NameSexAge
張三18
李四跨性別者21
王五18
韓七12

Table NSA2:

NameSexAge
張三18
李四21
王五18
趙六18
韓七12
SELECT a.Name,a.Sex FROM NSA1 a INNER JOIN NSA2 b ON a.Name=b.Name AND a.Sex =b.Sex

等價(jià)于

SELECT a.Name,a.Sex FROM NSA1 a INNER JOIN NSA2 b USING(Name ,Sex ) NameSexAge
張三18
王五18

二、并

先假設(shè)兩張表:
Table NSA1:

NameSexAge
張三18
李四21
王五18
韓七12

Table NSA2:

NameSexAge
張三18
李四21
王五18
趙六18
韓七12
SELECT Name,Sex FROM NSA1 UNION ALL SELECT Name,Sex FROM NSA1 NameSexAge
張三18
李四21
王五18
韓七12
張三18
李四21
王五18
趙六18
韓七12

如果執(zhí)行:

SELECT Name,Sex FROM NSA1 UNION SELECT Name,Sex FROM NSA1 NameSexAge
張三18
李四21
王五18
韓七12
趙六18

注釋:union自帶去重

三、差

(會用到連接運(yùn)算,固定寫法,連接運(yùn)算在下面不用著急看)
先假設(shè)兩張表:
Table NSA1:

NameSexAge
張三18
李四21
王五18
趙六18
韓七12

Table NSA2:

NameSexAge
張三18
李四21
王五18
韓七12
SELECT a.Name, a.Sex FROM NSA1 a LEFT JOIN NSA2 b ON a.Name= b.Name AND a.Sex= b.Sex WHERE b.Name IS NULL NameSexAge
趙六18

四、笛卡爾積

其實(shí)所有的鏈接運(yùn)算都是都是建立在笛卡爾積上的,笛卡爾積就是不舍棄任何全外連接,可以這么理解,但是cross join 象征著返回所有的情況,默認(rèn)不使用 where進(jìn)行過濾的。
舉例:
Table Name :

Name
朱小明
劉小華

Table Subject:

Subject
語文
數(shù)學(xué)
法律
select * from Name cross join Subject order by Name; NameSubject
劉小華數(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表

IDName
1大好人
2大壞蛋
3豬八戒
4孫悟空
5沙和尚
7唐三藏
8武松

ID_MingZhu 表

IDMingZhu
3西游記
4西游記
5西游記
7西游記
8水滸傳
SELECT * FROM ID_Name N,ID_MingZhu M WHERE N.ID=M.ID; ID_Name.IDNameID_MingZhu.IDMingZhu
3豬八戒3西游記
4孫悟空4西游記
5沙和尚5西游記
7唐三藏7西游記
8武松8水滸傳

② 自然連接

自然連接是特殊的等值連接,要求兩個(gè)關(guān)系中進(jìn)行比較的分量必須是同名的屬性組,并且在結(jié)果中把重復(fù)的屬性列去掉。

舉個(gè)例子:
ID_Name表

IDName
1大好人
2大壞蛋
3豬八戒
4孫悟空
5沙和尚
7唐三藏
8武松

ID_MingZhu 表

IDMingZhu
3西游記
4西游記
5西游記
7西游記
8水滸傳
SELECT * FROM ID_Name N natural join ID_MingZhu M ON N.ID=M.ID; ID_Name.IDNameMingZhu
3豬八戒西游記
4孫悟空西游記
5沙和尚西游記
7唐三藏西游記
8武松水滸傳

③ 左外連接
將返回右表的所有行。如果左表的某行在右表中沒有匹配行,則將為右表返回空值左連接:
例子:
ID_Name表

IDName
1大好人
2大壞蛋
3豬八戒
4孫悟空
5沙和尚
7唐三藏
8武松

ID_MingZhu 表

IDMingZhu
3西游記
4西游記
5西游記
7西游記
8水滸傳
9紅樓夢
SELECT * FROM ID_Name N left join ID_MingZhu M ON N.ID=M.ID; ID_Name.IDNameID_MingZhu.IDMingZhuNu
1大好人NULLNULL
2大壞蛋NULLNULL
3豬八戒3西游記
4孫悟空4西游記
5沙和尚5西游記
7唐三藏7西游記
8武松8水滸傳

④ 右外連接
將返回右表的所有行。如果右表的某行在左表中沒有匹配行,則將為左表返回空值;
例子

ID_Name表

IDName
1大好人
2大壞蛋
3豬八戒
4孫悟空
5沙和尚
7唐三藏
8武松

ID_MingZhu 表

IDMingZhu
3西游記
4西游記
5西游記
7西游記
8水滸傳
9紅樓夢
SELECT * FROM ID_Name N right join ID_MingZhu M ON N.ID=M.ID; ID_Name.IDNameID_MingZhu.IDMingZhuNu
3豬八戒3西游記
4孫悟空4西游記
5沙和尚5西游記
7唐三藏7西游記
8武松8水滸傳
NULLNULL9紅樓夢
  • 全外連接。
    左表和右表都不做限制,所有的記錄都顯示,兩表不足的地方用null 填充

例子
ID_Name表

IDName
1大好人
2大壞蛋
3豬八戒
4孫悟空
5沙和尚
7唐三藏
8武松

ID_MingZhu 表

IDMingZhu
3西游記
4西游記
5西游記
7西游記
8水滸傳
9紅樓夢
SELECT * FROM ID_Name N full join ID_MingZhu M ON N.ID=M.ID; ID_Name.IDNameID_MingZhu.IDMingZhuNu
1大好人NULLNULL
2大壞蛋NULLNULL
3豬八戒3西游記
4孫悟空4西游記
5沙和尚5西游記
7唐三藏7西游記
8武松8水滸傳
NULLNULL9紅樓夢

寫在最后:
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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。