查詢mysql多表的詳細(xì)步驟

下面跟著筆者一起來了解下查詢MySQL多表的詳細(xì)步驟,相信大家看完肯定會受益匪淺,文字在精不在多,希望查詢mysql多表的詳細(xì)步驟這篇短內(nèi)容是你想要的。

公司主營業(yè)務(wù):成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出潘集免費(fèi)做網(wǎng)站回饋大家。

首先,為了方便說明問題,創(chuàng)建兩個表emp(雇員信息)和dept(雇員部門信息),其數(shù)據(jù)如下:

查詢mysql多表的詳細(xì)步驟在之前的文章中,我們分享了單表查詢的方法,但是在實(shí)際應(yīng)用中,我們要查的數(shù)據(jù)很可能不在同一個表中,而是來自于不同的表。多表查詢?nèi)绻患尤魏螚l件,得到的結(jié)果稱為笛卡爾積。 例如,查找雇員名、雇員工資以及部門所在的名字。

查詢mysql多表的詳細(xì)步驟

可以發(fā)現(xiàn),結(jié)果是這樣的,從第一個表中選出第一條記錄,和第二個表中的所有所有記錄進(jìn)行組合,然后再從第一個表中取出第二條記錄,和第二張表的所有記錄進(jìn)行組合,這樣的結(jié)果是沒有實(shí)際意義的。我們需要的是emp.deptno = dept.deptno字段的記錄。

查詢mysql多表的詳細(xì)步驟

自連接

自連接是指在同一張表連接查詢

顯示員工FORD的上級領(lǐng)導(dǎo)的名字

查詢mysql多表的詳細(xì)步驟

子查詢

子查詢是指嵌入在其他sql語句中的select語句,也叫嵌套查詢。

單行子查詢:子查詢的查詢結(jié)果只有一行

顯示和SMITH同一部門的員工

查詢mysql多表的詳細(xì)步驟

多行子查詢(in ,all, any):返回多條記錄的子查詢

查詢和10好部門的工作相同的官員的名字、工作、工資、部門號,但是不包括10號自己的信息

查詢mysql多表的詳細(xì)步驟

顯示工資比部門編號為30的所有員工的工資高的員工的姓名、工資和部門號

查詢mysql多表的詳細(xì)步驟

顯示工資比部門編號為30的任意員工的工資高的員工的姓名、工資和部門號

查詢mysql多表的詳細(xì)步驟

多列子查詢:查詢返回多個列數(shù)據(jù)的子查詢語句

查詢和SMITH的部門和崗位完全相同的雇員,不含SMITH本人

查詢mysql多表的詳細(xì)步驟

from子句中使用子查詢

顯示高于自己部門的平均工資的員工信息

查詢mysql多表的詳細(xì)步驟查找每個部門工資最高的人的ename, job, sal

查詢mysql多表的詳細(xì)步驟顯示每個部門的信息(部門名、編號、地址)和人員數(shù)量

查詢mysql多表的詳細(xì)步驟

這里有兩種方法可以使用,但是經(jīng)驗(yàn)證,當(dāng)數(shù)據(jù)非常多的時(shí)候from子查詢的效率是高于多表查詢的。

刪除表中的重復(fù)記錄

已知一個表tt中有重復(fù)的數(shù)據(jù)

創(chuàng)建一張空表tmp_tt,空表的結(jié)構(gòu)與表tt的結(jié)構(gòu)相同;create table tmp_tt like tt;

將tt表進(jìn)行distinct,將數(shù)據(jù)導(dǎo)入空表中;insert into tmp_tt select distinct * from tt;

刪除原表ttdrop table tt;

將tmp_tt改名為ttalter table tmp_tt rename tt;

合并查詢

在實(shí)際應(yīng)用中,為了合并多個select的執(zhí)行結(jié)果,可以使用union,union all集合操作符

1、union操作符用于取得兩個結(jié)果的并集,并再自動去掉重復(fù)行 ,查找工資大于2500和職位Manger的人

查詢mysql多表的詳細(xì)步驟

2. union all 與union類似,但是不會自動去重
例如:與or類似

查詢mysql多表的詳細(xì)步驟

外鍵

外鍵定義主表和從表的關(guān)系,外鍵約束主要是定義在從表上,主表必須是有主鍵或者唯一鍵。當(dāng)定義外鍵后,要求外鍵列數(shù)據(jù)必須在主表列存在或者為NULL。
例如:創(chuàng)建一個主表class,從表stu

查詢mysql多表的詳細(xì)步驟

查詢mysql多表的詳細(xì)步驟

由上圖,我們可以知道主鍵不能為null,但是外鍵可以為null,同時(shí)不能存在外鍵有的數(shù)據(jù)而主表中不存在。

看完查詢mysql多表的詳細(xì)步驟這篇文章后,很多讀者朋友肯定會想要了解更多的相關(guān)內(nèi)容,如需獲取更多的行業(yè)信息,可以關(guān)注我們的行業(yè)資訊欄目。

標(biāo)題名稱:查詢mysql多表的詳細(xì)步驟
本文來源:http://bm7419.com/article48/psdphp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站網(wǎng)站設(shè)計(jì)、用戶體驗(yàn)、App設(shè)計(jì)、微信小程序、移動網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司