成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

實例講解MySQL連接查詢

數據庫 MySQL
連接查詢是在數據庫查詢操作的時候肯定要用到的,下文就結合一個實例,為您講解MySQL連接查詢的用法,希望對您能夠有所幫助。

MySQL連接查詢相信大家都有所了解,連接查詢是在數據庫查詢操作的時候肯定要用到的,下面就為您介紹MySQL連接查詢的用法,供您參考學習。

首先我們做兩張表:員工信息表和部門信息表,在此,表的建立只為講述連接的概念,所以字段非常的簡單
EmployeeTB(員工信息表):

employeeid employeename deptid
0001 張三 01
0002 李四 01
0003 王五 02
0004 趙六 02
0005 鄭七 NULL

DeptTB(部門信息表)
deptid deptname
01 技術部
02 市場部
03 工程部

我們現在需要進行連接查詢,連接兩張表檢索數據。分別檢索員工信息表的員工編號、員工姓名和部門信息表中的部門名稱。
顯然,兩個表的連接條件是 員工表的部門編號=部門表的部門編號
注意:鄭七不屬于任何部門(新來的員工,還沒有分配到任何的部門),而工程部不存在任何的員工(比如是一個新成立的部門,還沒有員工)

 MySQL連接查詢:

1、內連接查詢
我們可以有兩種方式,這兩種是等效的
一種是:SELECT e.employeeid,e.employeename,d.deptname FROM EmployeeTB AS e,DeptTB AS d WHERE e.deptid=d.deptid
另外一個是:SELECT e.employeeid,e.employeename,d.deptname FROM EmployeeTB AS e INNER JOIN DeptTB AS d ON e.deptid=d.deptid
檢索的結果都是:

employeeid employeename deptname
0001 張三 技術部
0002 李四 技術部
0003 王五 市場部
0004 趙六 市場部

而“鄭七”和“工程部”的信息是不會檢索出來。因為采用內連接計算的時候必須要保證連接的條件e.deptid=d.deptid匹配,結果才會被檢索出來。當我們連接兩張檢索數據的時候,檢索的方式是首先逐行掃描“員工信息表”中的記錄,然后根據連接條件來決定此記錄是否被檢索。比如對于張三,這條記錄的deptid是01(部門編號),它在部門表中能找到和它匹配的編號01,而編號01的部門名稱(deptname)是“技術部”所以張三這條記錄會被檢索,最終的結果肯定是:

0001 張三 技術部

同樣,李四、王五、趙六也能。但是鄭七的部門編號是NULL,它在部門信息表中找不到匹配的項(因為部門信息表中不存在部門編號為NULL的部門),所以鄭七不會被檢索。
同理,沒有任何人員的部門編號為03,所以工程部的記錄也不會被檢索

2、左外聯結
但是有些情況下,我們需要知道所有員工的信息,即使他不屬于任何部門。這樣我們就可以采用外連接,在這里為左外連接,也就是連接中的左表的表中的記錄,無論能不能在右表中找到匹配的項,都要檢索,如果沒有匹配的項目,那么右表中的字段值為NULL(空),在這里就代表,此員工不屬于任何部門。
檢索語句為:
SELECT e.employeeid,e.employeename,d.deptname FROM EmployeeTB AS e LEFT OUTER JOIN DeptTB AS d ON e.deptid=d.deptid
檢索的結果都是:

employeeid employeename deptname
0001 張三 技術部
0002 李四 技術部
0003 王五 市場部
0004 趙六 市場部
0005 鄭七 NULL

但是在這里,工程部同樣不會被檢索,因為,deptname是在連接的右邊的表中,“工程部”在左表中不存在任何的記錄,所以不會被檢索。這里關注的是“連接中的左邊的表”

3、右外連接
有時,我們需要知道,全部部門的信息,即使它沒有任何的員工。在我們的查詢中部門表在連接的右邊,如果我們想知道右邊表中的所有記錄信息,那么就可以采用右外連接,如果此記錄在左邊的表中找不到匹配項,則相應字段(employeeid,employeename)為NULL
檢索語句為:
SELECT e.employeeid,e.employeename,d.deptname FROM EmployeeTB AS e RIGHT OUTER JOIN DeptTB AS d ON e.deptid=d.deptid
檢索的結果都是:

employeeid employeename deptname
0001 張三 技術部
0002 李四 技術部
0003 王五 市場部
0004 趙六 市場部
NULL NULL 工程部

但在這里,鄭七是不會被檢索了,因為它在右表中找不到匹配項,這里關注的是“連接中的右邊的表”

4、完全外連接
如果我們想知道所有的記錄呢?無論員工有沒有部門,部門有沒有員工,我們都需要檢索。這里就可以使用完全外連接。關注連接中的兩部分。如果沒有部門,部門為空,沒有員工,員工信息為空。
檢索語句為:
SELECT e.employeeid,e.employeename,d.deptname FROM EmployeeTB AS e FULL OUTER JOIN DeptTB AS d ON e.deptid=d.deptid
檢索的結果都是:

employeeid employeename deptname
0001 張三 技術部
0002 李四 技術部
0003 王五 市場部
0004 趙六 市場部
0005 鄭七 NULL
NULL NULL 工程部
 
 

 

【編輯推薦】

Mysql多表查詢的實現

Mysql臨時表的用法

拆表用的MySQL存儲過程

深入探討MySQL鎖機制

詳解MySQL數據表類型

 

責任編輯:段燃 來源: 互聯網
相關推薦

2009-09-15 09:45:23

Linq動態條件

2010-06-03 18:22:38

Hadoop

2011-04-02 16:37:26

PAT

2010-09-14 17:20:57

2023-10-17 08:07:14

C++編程語言

2010-05-18 09:02:55

MySQL條件查詢

2010-10-14 16:27:56

MySQL隨機查詢

2010-03-03 14:05:36

Python實例應用

2011-05-23 13:24:01

2009-08-28 16:37:32

C# for循環

2011-04-01 09:04:09

RIP

2010-09-03 10:23:49

PPP Multili

2011-04-02 16:33:33

2009-12-21 16:52:52

靜態路由設置

2010-06-29 19:08:23

UML建模技術

2009-07-06 13:38:02

2009-06-17 13:57:54

java實例Reflection

2010-06-11 17:44:10

UML對象圖

2013-01-10 14:54:48

Android開發組件Intent

2009-06-08 16:52:00

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: av国产精品| 超碰在线97国产 | 日韩一区二区三区视频 | 一区二区在线免费观看 | 欧美日韩亚洲一区 | 欧美a区 | 亚洲国产精品区 | 国产精品毛片久久久久久久 | 99成人 | 偷偷操视频 | 欧美一级片a | 国产精品久久国产精品 | 免费a v网站 | 国产一区免费 | 99视频 | 国产高清精品在线 | 在线视频99 | 久久精品伊人 | 久久精品国产一区老色匹 | 欧美成人h版在线观看 | 亚洲网在线 | 亚洲国产成人精品一区二区 | 日韩精品一区二区三区在线观看 | 中文字幕日韩一区二区 | 九九综合 | 国产成人精品一区二区三区在线观看 | 日韩精品成人在线 | av国产精品毛片一区二区小说 | 一级黄色片日本 | 日韩精品一区二区三区中文在线 | 亚洲视频 欧美视频 | 国产一级片 | 欧美不卡 | 久久精品中文 | 久久精品91 | 可以在线看的黄色网址 | 免费精品视频一区 | 天堂中文在线观看 | 国产乱性| 91视频三区 | 日韩欧美在线视频 |