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

MySQL子查詢的使用詳解上篇

 更新時間:2022年08月30日 15:12:25   作者:一個風(fēng)輕云淡  
子查詢是在查詢語句里面再嵌套一個查詢,這是因為我們在提取數(shù)據(jù)的時候有很多不知道的數(shù)據(jù)產(chǎn)生了依賴關(guān)系。本文為大家總結(jié)了一下MySQL數(shù)據(jù)庫子查詢語法規(guī)則,感興趣的可以了解一下

前言

子查詢指一個查詢語句嵌套在另一個查詢語句內(nèi)部的查詢,這個特性從MySQL 4.1開始引入。

SQL 中子查詢的使用大大增強了 SELECT 查詢的能力,因為很多時候查詢需要從結(jié)果集中獲取數(shù)據(jù),或者 需要從同一個表中先計算得出一個數(shù)據(jù)結(jié)果,然后與這個數(shù)據(jù)結(jié)果(可能是某個標(biāo)量,也可能是某個集 合)進行比較。

需求分析與問題解決

#方式一:
SELECT salary
FROM employees
WHERE last_name = 'Abel';
SELECT last_name , salary
FROM employees
WHERE salary > 1 1 000 ;
#方式二:自連接
SELECT e2 .last_name , e2 . salary
FROM employees e1 , employees e2
WHERE e1.last_name = ' Abel '
AND e1. ` salary ` < e2. ` salary `
#方式三:子查詢
SELECT last_name,salary
FROM employees
WHERE salary > (
SELECT salary
FROM employees
WHERE last_name = 'Abel'
);

子查詢的基本使用

子查詢的基本語法結(jié)構(gòu)

子查詢(內(nèi)查詢)在主查詢之前一次執(zhí)行完成。

子查詢的結(jié)果被主查詢(外查詢)使用 。

注意事項

子查詢要包含在括號內(nèi)

將子查詢放在比較條件的右側(cè)

單行操作符對應(yīng)單行子查詢,多行操作符對應(yīng)多行子查詢

子查詢的分類

分類方式1:

我們按內(nèi)查詢的結(jié)果返回一條還是多條記錄,將子查詢分為 單行子查詢 、 多行子查詢 。

分類方式2:

我們按內(nèi)查詢是否被執(zhí)行多次,將子查詢劃分為 相關(guān)(或關(guān)聯(lián))子查詢 和 不相關(guān)(或非關(guān)聯(lián))子查詢 。子查詢從數(shù)據(jù)表中查詢了數(shù)據(jù)結(jié)果,如果這個數(shù)據(jù)結(jié)果只執(zhí)行一次,然后這個數(shù)據(jù)結(jié)果作為主查詢的條件進行執(zhí)行,那么這樣的子查詢叫做不相關(guān)子查詢。

同樣,如果子查詢需要執(zhí)行多次,即采用循環(huán)的方式,先從外部查詢開始,每次都傳入子查詢進行查詢,然后再將結(jié)果反饋給外部,這種嵌套的執(zhí)行方式就稱為相關(guān)子查詢。

單行子查詢

代碼示例

題目:查詢工資大于149號員工工資的員工的信息

題目:返回job_id與141號員工相同,salary比143號員工多的員工姓名,job_id和工資

SELECT last_name, job_id, salary
FROM employees
WHERE job_id =
        (SELECT job_id
        FROM employees
        WHERE employee_id = 141)
AND salary >
        (SELECT salary
        FROM employees
        WHERE employee_id = 143);

題目:返回公司工資最少的員工的last_name,job_id和salary

SELECT last_name, job_id, salary
FROM employees
WHERE salary =
(SELECT MIN(salary)
FROM employees);

HAVING中的子查詢

顯式員工的employee_id,last_name和location。其中,若員工department_id與location_id為1800的department_id相同,則location為’Canada’,其余則為’USA’。

SELECT employee_id, last_name,
(CASE department_id
WHEN
(SELECT department_id FROM departments
WHERE location_id = 1800)
THEN 'Canada' ELSE 'USA' END) location
FROM employees;

非法使用子查詢

SELECT employee_id, last_name
FROM employees
WHERE salary =
(SELECT MIN(salary)
FROM employees
GROUP BY department_id);

多行子查詢

也稱為集合比較子查詢

內(nèi)查詢返回多行

使用多行比較操作符

多行比較操作符

代碼示例

題目:返回其它job_id中比job_id為‘IT_PROG’部門任一工資低的員工的員工號、姓名、job_id 以及salary

題目:返回其它job_id中比job_id為‘IT_PROG’部門所有工資都低的員工的員工號、姓名、job_id以及id

題目:查詢平均工資最低的部門id

SELECT department_id
FROM employees
GROUP BY department_id
HAVING AVG(salary) <= ALL (
        SELECT AVG(salary) avg_sal
        FROM employees
        GROUP BY department_id)
SELECT department_id
FROM employees
GROUP BY department_id
HAVING AVG(salary) = (
SELECT MIN(avg_sal)
FROM (
        SELECT AVG(salary) avg_sal
        FROM employees
        GROUP BY department_id
        ) dept_avg_sal
)

到此這篇關(guān)于MySQL子查詢的使用詳解上篇的文章就介紹到這了,更多相關(guān)MySQL子查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL定時器開啟、調(diào)用實現(xiàn)代碼

    MySQL定時器開啟、調(diào)用實現(xiàn)代碼

    有些新手朋友對MySQL定時器開啟、調(diào)用不是很熟悉,本人整理測試一些,拿出來和大家分享一下,希望可以幫助你們
    2012-12-12
  • MySQL圖形化管理工具Navicat安裝步驟

    MySQL圖形化管理工具Navicat安裝步驟

    大家好,本篇文章主要講的是MySQL圖形化管理工具Navicat安裝步驟,感興趣的同學(xué)趕快來看看吧,對你有幫助的話記得收藏一下哦
    2021-12-12
  • Mybatis mapper動態(tài)代理的原理解析

    Mybatis mapper動態(tài)代理的原理解析

    這篇文章主要介紹了Mybatis mapper動態(tài)代理的原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • Mysql實現(xiàn)增量恢復(fù)的方法詳解

    Mysql實現(xiàn)增量恢復(fù)的方法詳解

    本文給大家分享的是如何實現(xiàn)mysql增量恢復(fù)的場景以及具體實現(xiàn)方法,有需要的小伙伴可以參考下
    2018-07-07
  • mysql導(dǎo)入導(dǎo)出數(shù)據(jù)中文亂碼解決方法小結(jié)

    mysql導(dǎo)入導(dǎo)出數(shù)據(jù)中文亂碼解決方法小結(jié)

    本文章總結(jié)了mysql導(dǎo)入導(dǎo)出數(shù)據(jù)中文亂碼解決方法,出現(xiàn)中文亂碼一般情況是導(dǎo)入導(dǎo)入時編碼的設(shè)置問題,我們只要把編碼調(diào)整一致即可解決此方法,下面是搜索到的一些方法總結(jié),方便需要的朋友
    2012-10-10
  • MySQL主從復(fù)制與讀寫分離原理及用法詳解

    MySQL主從復(fù)制與讀寫分離原理及用法詳解

    這篇文章主要介紹了MySQL主從復(fù)制與讀寫分離原理及用法,結(jié)合實例形式詳細(xì)分析了mysql數(shù)據(jù)庫主從復(fù)制、讀寫分離基本概念、原理、用法及操作注意事項,需要的朋友可以參考下
    2020-01-01
  • mysql數(shù)據(jù)庫設(shè)置utf-8編碼的方法步驟

    mysql數(shù)據(jù)庫設(shè)置utf-8編碼的方法步驟

    這篇文章主要介紹了mysql數(shù)據(jù)庫設(shè)置utf-8編碼的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • MySQL中常用查看鎖和事務(wù)的SQL語句詳解

    MySQL中常用查看鎖和事務(wù)的SQL語句詳解

    這篇文章主要介紹了MySQL中常用查看鎖和事務(wù)的SQL語句,用于查看鎖和事務(wù)的狀態(tài),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • Ubuntu安裝Mysql啟用遠(yuǎn)程連接的詳細(xì)圖文教程

    Ubuntu安裝Mysql啟用遠(yuǎn)程連接的詳細(xì)圖文教程

    在Ubuntu系統(tǒng)中添加了MySQL賬戶,賦予了數(shù)據(jù)庫完全操作權(quán)限,并且允許數(shù)據(jù)庫從外部鏈接但是,還是無法遠(yuǎn)程訪問MySQL數(shù)據(jù)庫,下面這篇文章主要給大家介紹了關(guān)于Ubuntu安裝Mysql啟用遠(yuǎn)程連接的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • MySQL中Bit數(shù)據(jù)類型的使用方式

    MySQL中Bit數(shù)據(jù)類型的使用方式

    這篇文章主要介紹了MySQL中Bit數(shù)據(jù)類型的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09

最新評論

平远县| 崇信县| 山西省| 开远市| 迁安市| 大庆市| 太仆寺旗| 顺昌县| 紫金县| 年辖:市辖区| 喀喇沁旗| 白山市| 大同市| 富宁县| 临武县| 德格县| 芦溪县| 教育| 雅江县| 栾川县| 商丘市| 屏山县| 德格县| 南汇区| 漳州市| 历史| 东明县| 东山县| 元阳县| 望江县| 延川县| 来安县| 韩城市| 长子县| 确山县| 准格尔旗| 马尔康县| 泰兴市| 南漳县| 那曲县| 稷山县|