亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

SQL總結(二)連表查詢

2024-07-21 02:50:03
字體:
來源:轉載
供稿:網友
SQL總結(二)連表查詢 Posted on 2014-05-29 08:43 停留的風 閱讀(...) 評論(...) 編輯 收藏SQL總結(二)連表查詢

連接查詢包括合并、內連接、外連接和交叉連接,如果涉及多表查詢,了解這些連接的特點很重要。

只有真正了解它們之間的區別,才能正確使用。

1、Union

UNION 操作符用于合并兩個或多個 SELECT 語句的結果集。

UNION運算符通過組合其他兩個結果表(例如TABLE1和TABLE2)并消去表中任何重復行而派生出一個結果表。

當ALL隨UNION一起使用時(即UNION ALL),不消除重復行。兩種情況下,派生表的每一行不是來自TABLE1就是來自TABLE2。

注意:使用UNION時,兩張表查詢的結果有相同數量的列、列類型相似。

學生表信息(Students):

IDNameAgeCityMajorID
101Tom20BeiJing10
102Lucy18ShangHai11

教師表信息(Teachers):

IDName
101Mrs Lee
102Lucy

預置腳本:

INSERT INTO Students(ID,Name,Age,City,MajorID) VALUES(101,'Tom',20,'BeiJing',10)INSERT INTO Students(ID,Name,Age,City,MajorID) VALUES(102,'Lucy',18,'ShangHai',11)INSERT INTO Teachers(ID,Name) VALUES(101,'Mrs Lee')INSERT INTO Teachers(ID,Name) VALUES(102,'Lucy')

1)基本UNION查詢,查詢學校教師、學生的總的信息表,包括ID和姓名

SELECT ID,Name FROM StudentsUNIONSELECT ID,Name FROM Teachers

查詢結果:

IDName
101Mrs Lee
101Tom
102Lucy

2)帶條件的UNION查詢,也可以查詢同一張表,查詢年齡為18,23歲的學生信息

SELECT ID,Name FROM Student WHERE Age=18UNIONSELECT ID,Name FROM Student WHERE Age=23

當然,這可以使用IN或者OR很容易實現,這里只是點到,以后遇到復雜查詢,相信你會用到。

3)查詢教師學生全部姓名

因為UNION只會選擇不同的值,如果學生中和教師中有重名的情況,這就需要UNION ALL

SELECT Name FROM StudentsUNION ALLSELECT Name FROM Teachers

查詢結果:

IDName
101Tom
102Lucy
101Mrs Lee
102Lucy

2、INNER JOIN(內連接)

INNER JOIN(內連接),也成為自然連接

作用:根據兩個或多個表中的列之間的關系,從這些表中查詢數據。

注意:內連接是從結果中刪除其他被連接表中沒有匹配行的所有行,所以內連接可能會丟失信息。

重點:內連接,只查匹配行。

語法:(INNER可省略)

SELECT fieldlistFROM table1 [INNER] join table2ON table1.column=table2.column

學生表信息(Students):

IDNameAgeCityMajorID
101Tom20BeiJing10
102Lucy18ShangHai11

專業信息表(Majors):

IDName
10English
12Computer

預置腳本:

DELETE FROM StudentsINSERT INTO Students(ID,Name,Age,City,MajorID) VALUES(101,'Tom',20,'BeiJing',10)INSERT INTO Students(ID,Name,Age,City,MajorID) VALUES(102,'Lucy',18,'ShangHai',11)DELETE FROM MajorsINSERT INTO Majors(ID,Name) VALUES(10,'English')INSERT INTO Majors(ID,Name) VALUES(12,'Computer')

實例:查詢學生信息,包括ID,姓名、專業名稱

SELECT Students.ID,Students.Name,Majors.Name AS MajorNameFROM Students INNER JOIN MajorsON Students.MajorID = Majors.ID

查詢結果:

IDNameMajorName
101TomEnglish

根據結果可以清晰看到,確實只有匹配的行。學生Lucy的信息丟失了。

3、外連接

與內連接相比,即使沒有匹配行,也會返回一個表的全集。

外連接分為三種:左外連接,右外連接,全外連接。對應SQL:LEFT/RIGHT/FULL OUTER JOIN。通常我們省略outer 這個關鍵字。寫成:LEFT/RIGHT/FULL JOIN。

重點:至少有一方保留全集,沒有匹配行用NULL代替。

1)LEFT OUTER JOIN,簡稱LEFT JOIN,左外連接(左連接)

結果集保留左表的所有行,但只包含第二個表與第一表匹配的行。第二個表相應的空行被放入NULL值。

依然沿用內鏈接的例子

(1)使用左連接查詢學生的信息,其中包括學生ID,學生姓名和專業名稱。

SELECT Students.ID,Students.Name,Majors.Name AS MajorNameFROM Students LEFT JOIN MajorsON Students.MajorID = Majors.ID

結果:

ID

Name

MajorName

101

Tom

English

102

Lucy

NULL

結論:

通過結果,我們可以看到左連接包含了第一張表的所有信息,在第二張表中如果沒有匹配項,則用NULL代替。

2)RIGHT JOIN(right outer join)右外連接(右連接)

右外連接保留了第二個表的所有行,但只包含第一個表與第二個表匹配的行。第一個表相應空行被入NULL值。

右連接與左連接思想類似。只是第二張保留全集,如果第一張表中沒有匹配項,用NULL代替

依然沿用內鏈接的例子,只是改為右連接

(1)使用右連接查詢學生的信息,其中包括學生ID,學生姓名和專業名稱。

SELECT Students.ID,Students.Name,Majors.Name AS MajorNameFROM Students RIGHT JOIN MajorsON Students.MajorID = Majors.ID

查詢結果:

ID

Name

MajorName

101

Tom

English

NULL

NULL

Computer

通過結果可以看到,包含了第二張表Majors的全集,Computer在Students表中沒有匹配項,就用NULL代替。

3)FULL JOIN (FULL OUTER JOIN,全外連接)

全外連接,簡稱:全連接。會把兩個表所有的行都顯示在結果表中

1)使用全連接查詢學生的信息,其中包括學生ID,學生姓名和專業名稱。

SELECT Students.ID,Students.Name,Majors.Name AS MajorNameFROM Students FULL JOIN MajorsON Students.MajorID = Majors.ID

查詢結果:

ID

Name

MajorName

101

Tom

English

102

Lucy

NULL

NULL

NULL

Computer

包含了兩張表的所有記錄,沒有記錄丟失,沒有匹配的行用NULL代替。

4、CROSS JOIN(交叉連接)

交叉連接。交叉連接返回左表中的所有行,左表中的每一行與右表中的所有行組合。交叉連接也稱作笛卡爾積。

簡單查詢兩張表組合,這是求笛卡兒積,效率最低。

笛卡兒積:笛卡爾乘積,也叫直積。假設集合A={a,b},集合B={0,1,2},則兩個集合的笛卡爾積為{(a,0),(a,1),(a,2),(b,0),(b,1), (b,2)}??梢詳U展到多個集合的情況。類似的例子有,如果A表示某學校學生的集合,B表示該學校所有課程的集合,則A與B的笛卡爾積表示所有可能的選課情況。

1)交叉連接查詢學生的信息,其中包括學生ID,學生姓名和專業名稱。

SELECT Students.ID,Students.Name,Majors.Name AS MajorNameFROM Students CROSS JOIN Majors

查詢結果:

ID


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
最近2019年日本中文免费字幕| 色综合五月天导航| 欧美午夜视频在线观看| 中日韩美女免费视频网址在线观看| 日韩美女在线播放| 成人精品视频99在线观看免费| 在线成人免费网站| 亚洲xxxx做受欧美| 国产ts一区二区| 55夜色66夜色国产精品视频| 国产精品草莓在线免费观看| 久久精品91久久香蕉加勒比| 日韩av成人在线| 精品福利樱桃av导航| www.亚洲人.com| 91久久久亚洲精品| 日韩激情视频在线| 国产精品视频专区| 欧美午夜精品久久久久久人妖| 欧美日韩国产麻豆| 懂色aⅴ精品一区二区三区蜜月| 热re99久久精品国产66热| 国产亚洲欧美日韩美女| 在线观看国产精品日韩av| 91香蕉嫩草影院入口| 精品国产乱码久久久久久婷婷| 亚洲日韩欧美视频一区| 欧美日韩亚洲一区二区三区| 日韩免费看的电影电视剧大全| 国产成人jvid在线播放| 国产午夜精品理论片a级探花| 精品五月天久久| 国产午夜精品一区理论片飘花| 欧美日韩激情美女| 久久久久久久91| 亚洲精品久久久久久久久久久| 久久国产精品久久国产精品| 久久久女人电视剧免费播放下载| 国产亚洲视频在线观看| 97国产真实伦对白精彩视频8| 91国偷自产一区二区三区的观看方式| 欧美性xxxxx极品娇小| 亚洲人成毛片在线播放| 日韩精品在线观看网站| 久久人人爽人人爽人人片av高清| 国产国产精品人在线视| 欧美成人亚洲成人| 国产成人aa精品一区在线播放| 在线中文字幕日韩| 在线精品高清中文字幕| 亚洲精品99久久久久中文字幕| 日本精品久久久久影院| 欧美一区二区视频97| 欧美亚洲国产另类| 欧美精品videosex牲欧美| 亚洲国产精品久久久久秋霞蜜臀| 欧美国产日韩二区| 欧美国产日韩视频| 亚洲天堂免费在线| 亚洲男人天堂2024| 国产精品女人网站| 九九九久久久久久| 欧美国产日本高清在线| 亚洲欧美色婷婷| 久久久亚洲精品视频| 国产精品99久久久久久www| 亚洲自拍小视频免费观看| 久久久久久久影院| 久久精品国产成人精品| 欧美高清在线视频观看不卡| 日韩经典中文字幕在线观看| 亚洲精品在线观看www| 欧美激情视频免费观看| 日韩av在线影院| 精品爽片免费看久久| 国产视频精品xxxx| 国产一区二区三区视频在线观看| 97免费视频在线| 久久精品影视伊人网| 亚洲另类欧美自拍| 亚洲国产精品悠悠久久琪琪| 欧美视频不卡中文| 亚洲区一区二区| 欧美成人剧情片在线观看| 亚洲精选一区二区| 久久久噜噜噜久噜久久| 成人免费网站在线观看| 中国人与牲禽动交精品| 国产99久久久欧美黑人| 在线观看国产精品日韩av| 亚洲国产天堂网精品网站| 黑人巨大精品欧美一区二区三区| 中文字幕日韩欧美在线| 95av在线视频| 日韩欧美国产中文字幕| 国产成人综合精品| 欧美精品一本久久男人的天堂| 高潮白浆女日韩av免费看| 黑人狂躁日本妞一区二区三区| 国产www精品| 一区二区三区无码高清视频| 在线播放日韩专区| 亚洲sss综合天堂久久| 国产亚洲欧美日韩一区二区| 日本久久中文字幕| 国产精品视频精品视频| 国产精品av网站| 国产日本欧美一区二区三区| 孩xxxx性bbbb欧美| 欧美激情videoshd| 全球成人中文在线| 97碰碰碰免费色视频| 国产99久久久欧美黑人| 欧美专区日韩视频| 亚洲va欧美va国产综合剧情| 国产在线一区二区三区| 98精品在线视频| 精品久久久久久久久中文字幕| 在线观看欧美成人| 久久久久久亚洲精品中文字幕| 2019国产精品自在线拍国产不卡| 国产精品美女999| 国产综合视频在线观看| 日韩美女视频免费在线观看| 亚洲精品在线不卡| 超碰日本道色综合久久综合| 成人午夜激情免费视频| 久久视频在线观看免费| 久久视频精品在线| 色噜噜狠狠色综合网图区| 97超级碰在线看视频免费在线看| 国产精品一区二区久久精品| 日韩成人av网| 亚洲欧美三级伦理| 最近免费中文字幕视频2019| 精品久久久久久久久久久久| 91在线观看免费高清完整版在线观看| 国产精品吹潮在线观看| 日韩成人在线观看| 日韩精品极品毛片系列视频| 久久综合免费视频| 中文字幕一区二区三区电影| 亚洲欧美国产一区二区三区| 久久成人综合视频| 91av在线国产| 亚洲国产精品一区二区久| 成人性生交大片免费观看嘿嘿视频| 日韩高清电影免费观看完整| 国产成人综合一区二区三区| 久久福利网址导航| 久久精品91久久久久久再现| 亚洲精品国产精品国自产观看浪潮| 色噜噜国产精品视频一区二区| 久久久噜噜噜久久中文字免| 亚洲天堂精品在线| 日韩高清有码在线| 亚洲精品www久久久久久广东| 91久久久久久久久| 国产成人鲁鲁免费视频a| 亚洲欧美在线免费| 欧美精品生活片| 日韩中文在线不卡| 国产亚洲免费的视频看| 亚洲一区二区三区sesese|