最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL復(fù)合查詢的實(shí)現(xiàn)示例

 更新時(shí)間:2023年10月07日 10:22:52   作者:冰果滴  
復(fù)合查詢語句是MySQL中一種非常重要的查詢方式,可以用于優(yōu)化查詢性能和控制查詢的結(jié)果集,具有一定的參考價(jià)值,感興趣的可以了解一下

前言:經(jīng)過前面的學(xué)習(xí),MySQL的基本操作都已經(jīng)掌握了。之前介紹的是對(duì)于一張表進(jìn)行查詢,但是僅僅查詢一張表是不夠的,所以從這一篇開始要介紹多張表時(shí)如何查詢。

一.單表查詢(引入子查詢)

(1)查詢工資高于500或崗位為MANAGER的雇員,同時(shí)還要滿足他們的姓名首字母為大寫的J:

這兩種寫法都可以。 

(2)按照部門號(hào)升序而雇員的工資降序排序

(3)使用年薪進(jìn)行降序排序

(4)顯示工資最高的員工的名字和工作崗位

max是聚合函數(shù),不能這么用,因此可以將其分開:

這樣分兩步寫看著很不好,因此這里要用到一個(gè)新的查詢:子查詢

即在一個(gè)查詢里嵌套另一個(gè)查詢。

也可以據(jù)此顯示年薪最高的員工的名字和工作崗位:

(5)顯示工資高于平均工資的員工信息

(6)顯示每個(gè)部門的平均工資和最高工資

這里format是最后一步,不要先對(duì)它重命名,后面是無法識(shí)別的。 

(7)顯示平均工資低于2000的部門號(hào)和它的平均工資

(8)顯示每種崗位的雇員總數(shù),平均工資

二.多表查詢

(1)顯示雇員名、雇員工資以及所在部門的名字因?yàn)樯厦娴臄?shù)據(jù)來自EMP和DEPT表,因此要聯(lián)合查詢

這里雇員名和雇員工資在emp表(從表)中,而部門名字在dept表(主表)中,emp表只有部門的編號(hào)。

select后面是可以跟多個(gè)表的,后面多個(gè)表會(huì)被合并為一個(gè)表顯示:

多表組合,形成笛卡爾積,本質(zhì)是數(shù)據(jù)的窮舉。

這里只有兩個(gè)deptno相等的才是有效的,但是不能這么寫:

應(yīng)該這樣寫:

因此:

得到了想要查詢的結(jié)果。 

解決多表查詢的思路:

① 讀題,確定都和哪些表有關(guān)

② 組合成一張表

③ 將多表查詢,看作成為一張表的查詢

(2)顯示部門號(hào)為10的部門名,員工名和工資

(3)顯示各個(gè)員工的姓名,工資,及工資級(jí)別

三.自連接

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

可以用e1和e2表示兩個(gè)相同的emp表。

例子:顯示員工FORD的上級(jí)領(lǐng)導(dǎo)的編號(hào)和姓名

如果按照之前的方法,是要兩步的,不過這里可以用自連接變成一步。

這樣就變成了一步。

也可以用子查詢的方法變成一步。

四.子查詢

(1)多行單列子查詢 

返回多行記錄的子查詢。(這里是對(duì)上面子查詢的擴(kuò)展)

① in:在這個(gè)集合中

查詢和10號(hào)部門的工作崗位相同的雇員的名字,崗位,工資,部門號(hào),但是不包含10自己的。

② all:所有的

顯示工資比部門30的所有員工的工資高的員工的姓名、工資和部門號(hào)。

不使用all,可以將題目轉(zhuǎn)化為大于30的員工中最高工資的員工。

用all。

③ any:任何一個(gè)

顯示工資比部門30的任意員工的工資高的員工的姓名、工資和部門號(hào)(包含自己部門的員工)

(2)多列子查詢

單行子查詢是指子查詢只返回單列,單行數(shù)據(jù);多行子查詢是指返回單列多行數(shù)據(jù),都是針對(duì)單列而言的,而多列子查詢則是指查詢返回多個(gè)列數(shù)據(jù)的子查詢語句。

例子:查詢和SMITH的部門和崗位完全相同的所有雇員,不含SMITH本人。

(3)在from子句中使用子查詢

子查詢語句出現(xiàn)在from子句中。這里要用到數(shù)據(jù)查詢的技巧,把一個(gè)子查詢當(dāng)做一個(gè)臨時(shí)表使用。

例子①:顯示每個(gè)高于自己部門平均工資的員工的姓名、部門、工資、平均工資

如果想知道其工資等級(jí),就繼續(xù)往上加:

例子②:查找每個(gè)部門工資最高的人的姓名、工資、部門、最高工資

例子③:顯示每個(gè)部門的信息(部門名,編號(hào),地址)和人員數(shù)量

mysql永遠(yuǎn)會(huì)有一張表。

如果我們只有一張表,要進(jìn)行各種select,我們認(rèn)為,所有select查出來的結(jié)果,都是一張表。

如果我們有多張表,進(jìn)行查詢之前,我們可以進(jìn)行整合,也是select,查出來的結(jié)果,也是一張表。

五.合并查詢(union、union all)

為了合并多個(gè)select的執(zhí)行結(jié)果,可以使用集合操作符 union,union all

  • union用于取得兩個(gè)結(jié)果集的并集。當(dāng)使用該操作符時(shí),會(huì)自動(dòng)去掉結(jié)果集中的重復(fù)行。
  • union all用于取得兩個(gè)結(jié)果集的并集。當(dāng)使用該操作符時(shí),不會(huì)去掉結(jié)果集中的重復(fù)行。

例子:將工資大于2500或職位是MANAGER的人找出來。

這是不使用union的方法。

使用union將兩個(gè)語句合并在一起。 

如果使用union all就不會(huì)去重。

union (all):本質(zhì)是將多次查詢結(jié)果合并成為一個(gè)結(jié)果(就是將多張表合并成為一張表)。

到此這篇關(guān)于MySQL復(fù)合查詢的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)MySQL復(fù)合查詢內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL慢查詢優(yōu)化從30秒到300毫秒的完整過程

    MySQL慢查詢優(yōu)化從30秒到300毫秒的完整過程

    文章介紹了如何優(yōu)化一個(gè)響應(yīng)時(shí)間為30秒的SQL接口,將響應(yīng)時(shí)間優(yōu)化到300毫秒的過程,通過開啟慢查詢?nèi)罩?、分析SQL執(zhí)行計(jì)劃、添加聯(lián)合索引和優(yōu)化查詢技巧等步驟,解決了慢查詢問題,文章還分享了索引設(shè)計(jì)原則、實(shí)用工具和遠(yuǎn)程數(shù)據(jù)庫(kù)排查技巧,需要的朋友可以參考下
    2025-12-12
  • 淺談MySQL中不等號(hào)索引問題

    淺談MySQL中不等號(hào)索引問題

    本文主要介紹了淺談MySQL中不等號(hào)索引問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 計(jì)算機(jī)二級(jí)考試MySQL知識(shí)點(diǎn) mysql alter命令

    計(jì)算機(jī)二級(jí)考試MySQL知識(shí)點(diǎn) mysql alter命令

    這篇文章主要為大家詳細(xì)介紹了計(jì)算機(jī)二級(jí)考試MySQL知識(shí)點(diǎn),詳細(xì)介紹了mysql中alter命令的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • MySQL提取Json內(nèi)部字段轉(zhuǎn)儲(chǔ)為數(shù)字

    MySQL提取Json內(nèi)部字段轉(zhuǎn)儲(chǔ)為數(shù)字

    本文主要介紹了MySQL提取Json內(nèi)部字段轉(zhuǎn)儲(chǔ)為數(shù)字,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • MySQL存儲(chǔ)過程的創(chuàng)建和使用示例詳解

    MySQL存儲(chǔ)過程的創(chuàng)建和使用示例詳解

    文章介紹了MySQL存儲(chǔ)過程的概念、創(chuàng)建與刪除、調(diào)用、變量使用、參數(shù)、流程控制、管理和案例,存儲(chǔ)過程可以封裝SQL指令,提高執(zhí)行效率,但也有一定局限性,感興趣的朋友跟隨小編一起看看吧
    2025-02-02
  • Mysql數(shù)據(jù)庫(kù)值的添加、修改、刪除及清空操作實(shí)例

    Mysql數(shù)據(jù)庫(kù)值的添加、修改、刪除及清空操作實(shí)例

    這篇文章主要給大家介紹了關(guān)于Mysql數(shù)據(jù)庫(kù)值的添加、修改、刪除及清空操作的相關(guān)資料,文中通過示例代碼以及圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2021-06-06
  • Linux下將數(shù)據(jù)庫(kù)從MySQL遷移到MariaDB的基礎(chǔ)操作教程

    Linux下將數(shù)據(jù)庫(kù)從MySQL遷移到MariaDB的基礎(chǔ)操作教程

    這篇文章主要介紹了將數(shù)據(jù)庫(kù)從MySQL遷移到MariaDB的基礎(chǔ)操作教程,當(dāng)然遷移之前不要忘記數(shù)據(jù)庫(kù)的備份!需要的朋友可以參考下
    2015-11-11
  • MySQL數(shù)據(jù)表損壞的正確修復(fù)方案

    MySQL數(shù)據(jù)表損壞的正確修復(fù)方案

    修復(fù)以損壞的MySQL數(shù)據(jù)表的實(shí)際操作在實(shí)際中是我們經(jīng)常用到的,以下的文章主要是介紹正確修復(fù)以損壞的MySQL數(shù)據(jù)表的實(shí)際操作步驟,以下就是正文的介紹,希望會(huì)給你帶來一些幫助在此方面。
    2011-01-01
  • 一文分享MySQL數(shù)據(jù)庫(kù)備份恢復(fù)腳本

    一文分享MySQL數(shù)據(jù)庫(kù)備份恢復(fù)腳本

    在日常業(yè)務(wù)場(chǎng)景,通常情況下,我們不需要進(jìn)行全庫(kù)備份,而是只備份需要的數(shù)據(jù)庫(kù),本文分享一個(gè)MySQL數(shù)據(jù)庫(kù)備份恢復(fù)腳本,用于備份和恢復(fù)指定的數(shù)據(jù)庫(kù),希望對(duì)大家有所幫助
    2026-06-06
  • 深入了解MySQL中分區(qū)表的原理與企業(yè)級(jí)實(shí)戰(zhàn)

    深入了解MySQL中分區(qū)表的原理與企業(yè)級(jí)實(shí)戰(zhàn)

    本文詳細(xì)講解什么是分區(qū)表,分區(qū)表增刪改查的工作原理以及分區(qū)表的實(shí)戰(zhàn),分區(qū)表的場(chǎng)景有哪些,哪些場(chǎng)景不建議用分區(qū)表,并列舉出六點(diǎn)使用分區(qū)表的誤區(qū),需要的可以參考一下
    2022-11-11

最新評(píng)論

佛学| 云安县| 太和县| 桂平市| 金平| 巍山| 凤城市| 渭源县| 黄陵县| 额尔古纳市| 雅江县| 岫岩| 罗定市| 拉孜县| 松滋市| 溧水县| 长泰县| 拉萨市| 砚山县| 房山区| 阿克| 和龙市| 自贡市| 文安县| 淄博市| 榆中县| 高阳县| 乌兰浩特市| 南皮县| 扎兰屯市| 九龙坡区| 南陵县| 阳江市| 东方市| 乐都县| 大竹县| 汶上县| 抚远县| 梁平县| 图片| 宜都市|