91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在MySQL中實現連接查詢

發布時間:2021-06-02 16:18:06 來源:億速云 閱讀:259 作者:Leah 欄目:開發技術

本篇文章給大家分享的是有關怎么在MySQL中實現連接查詢,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

1.內連接查詢概要

       內連接是應用程序中非常常見的連接操作,它一般都是默認的連接類型。內連接基于連接謂詞,它將兩張表(如A和B)的列組合在一起,產生新的結果表。內連接查詢會將A表的每一行和B表的每一行進行比較,并找出滿足連接謂詞的組合。當連接謂詞被滿足,A和B中匹配的行會按列組合(并排組合)成結果集中的一行。

       內連接查詢操作列出與連接條件匹配的數據行,它使用比較運算符比較被連接列的列值。內連接分3種:交叉連接相等連接和自然連接。

2.交叉連接(笛卡爾積)

       交叉連接(Cross Join) ,又稱“笛卡爾連接(Cartesian Join) "或“叉乘(Product) ",它是所有類型的內連接的基礎。

       如果把表視為行記錄的集合,那么交叉連接即返回這兩個集合的笛卡爾積,返回到結果集合中的數據行數等于第一張表中符合查詢條件的數據行數乘以第二個表中符合查詢條件的數據行數。這其實等價于內連接的連接條件為“永真” ,或連接條件不存在。如果A和B是兩個集合,它們的交叉連接就記為: A x B.

       定義線路表與車輛表的交叉連接(笛卡爾積) 。

示例:

實現線路表與車輛表笛卡爾積

SELECT COUNT(*)
FROM line 
CROSS JOIN vehicle

3.內連接語法與示例

語法:

SELECT fieldlist
FROM table1 [INNER] JOIN table2 
  ON table1.column1=table2.column2
[WHERE condition]

示例1:

使用內連接獲取車輛型號含有“DD”字樣的車輛信息和司機信息,要求車輛信息為全部列,司機信息中只需包含姓名和身份證

SELECT v.*,d.name,d.licenseNo
FROM vehicle v JOIN driver d
  ON v.driverID=d.driverID
WHERE model LIKE '%DD%'

示例2:

使用內連接獲取年齡大于35歲的司機信息和該司機所駕駛的車輛信息,要求車輛信息為全部列,司機信息中只包含姓名、出生年月和電話

SELECT v.*,d.name,d.licenseNo,d.phone
FROM vehicle v INNER JOIN driver d
  ON v.driverID=d.driverID
WHERE CEIL(DATEDIFF(NOW(),birthday)/365)>35

4.自然連接

自然連接(Natural Join)是一種特殊的內連接,它要求相連接的兩張表的連接依據列心須是相同的字段(字段?相同,字段屬性相同)。在自然連接中兩張表的所有名稱相同的列都將被比較,并且在結果集中把重復的列去掉,結果集中兩張表中名稱相同的列僅出現一次。而普通的內連接并不去掉重復的列。(部分數據庫不支持自然連接,saL Server等。)

自然連接的語法如下:

SELECT fieldlist
FROM table1 NATURAL JOIN table2
[WHERE condition]

示例:

使用自然連接獲取車輛型號含有“DD”字樣的車輛信息和司機信息,要求車輛信息為全部列,司機信息中只需包含姓名和身份證

SELECT v.*,d.name,d.licenseNo
FROM vehicle v NATURAL JOIN driver d
WHERE model LIKE '%DD%'

5.多表連接查詢

如果查詢的信息來源于多張表,則可通過兩兩相連的方式建立多表連接查詢。

以下為三表連接查詢的語法:

SELECT fieldlist 
FROM table1 JOIN table2 
  ON table1.column1=table2.column2_1
JOIN table3
  ON table2.column2_2=table3.column3
[WHERE condition]

說明:

(1)table2與table1和table3兩兩相連。

(2)三表以上連接查詢的方法與三表連接查詢的方法一樣,均是通過兩兩相連的方式實現。

示例1:

獲取所有非空調車的車牌號、型號和司機姓名、所屬線路的線路好、起點站和終點站信息

SELECT d.name,v.plateNo,v.model,l.lineNo,l.from_station,l.end_station
FROM vehicle v JOIN driver d
  ON v.driverID=d.driverID
JOIN line l
  ON v.lineID=l.lineID
WHERE type='非空調車'

示例2:

獲取公交二公司所有司機信息。要求輸出司機姓名、身份證、性別和電話。

SELECT d.name,d.licenseNo,d.gender,d.phone
FROM vehicle v JOIN driver d 
  ON v.driverID 
JOIN line l
  ON v.lineID=l.lineID
WHERE company='公交二公司'

6.簡單多表連接查詢

如果在FROM子句中,直接列出所有要連接的表,然后在WHERE子句中指定連接條件,此為簡單多表查詢,它與內連接功能相同

使用兩表連接查詢語法格式如下:

SELECT fieldlist
FROM table1,table2
WHERE table1.column1=table2.column2
[AND 其他條件]

使用三表連接查詢語法格式如下:

SELECT fieldlist 
FROM table1,table2,table3
WHERE table1.column1=table2.column2_1 
  AND table2.column2_2=table3.colemn3
[AND 其他條件]

示例:

獲取所有非空調車的車牌號、型號和司機姓名、所屬線路的線路好、起點站和終點站信息

SELECT d.name,v.plateNo,v.model,l.lineNo,l.from_station,l.end_station
FROM vehicle v,driver d,line l
WHERE v.driverID=d.driverID
  AND v.lineID=l.lineID
AND type='空調車'

以上就是怎么在MySQL中實現連接查詢,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

赤峰市| 永平县| 彩票| 白山市| 辽阳县| 太仓市| 福建省| 连南| 彭州市| 富阳市| 澎湖县| 遂宁市| 婺源县| 龙州县| 舒兰市| 金乡县| 铁岭市| 忻州市| 南汇区| 平远县| 辰溪县| 筠连县| 固始县| 祁东县| 永泰县| 太仓市| 西宁市| 连南| 株洲市| 陈巴尔虎旗| 和政县| 和平县| 新昌县| 紫阳县| 廉江市| 青阳县| 长子县| 蓬溪县| 关岭| 贺州市| 且末县|