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

Mysql中的嵌套子查詢問題

 更新時(shí)間:2022年01月27日 11:44:01   作者:齊天大荒  
這篇文章主要介紹了Mysql嵌套子查詢,子查詢就是指的在一個(gè)完整的查詢語句之中,嵌套若干個(gè)不同功能的小查詢,從而一起完成復(fù)雜查詢的一種編寫形式,為了讓讀者更加清楚子查詢的概念,感興趣的朋友跟隨小編一起看看吧

Mysql嵌套子查詢

子查詢就是指的在一個(gè)完整的查詢語句之中,嵌套若干個(gè)不同功能的小查詢,從而一起完成復(fù)雜查詢的一種編寫形式,為了讓讀者更加清楚子查詢的概念。

子查詢返回結(jié)果
子查詢可以返回的數(shù)據(jù)類型一共分為四種:

  • 單行單列:返回的是一個(gè)具體列的內(nèi)容,可以理解為一個(gè)單值數(shù)據(jù);
  • 單行多列:返回一行數(shù)據(jù)中多個(gè)列的內(nèi)容;
  • 多行單列:返回多行記錄之中同一列的內(nèi)容,相當(dāng)于給出了一個(gè)操作范圍;
  • 多行多列:查詢返回的結(jié)果是一張臨時(shí)表;

在WHERE子句中使用子查詢

在WHERE子句之中處理單行單列子查詢、多行單列子查詢、單行多列子查詢。

單行單列子查詢

**示例一、**查詢公司之中工資最低的雇員的完整信息

--查詢公司之中工資最低的雇員的完整信息
SELECT * 
FROM emp e
WHERE e.sal=(
  SELECT MIN(sal) 
  FROM emp);

**示例二、**查詢出基本工資比ALLEN低的全部雇員信息

-- 查詢出基本工資比ALLEN低的全部雇員信息
SELECT * 
FROM emp e
WHERE e.sal<(
 SELECT sal 
 FROM emp 
 WHERE ename='ALLEN'
);

**示例三、**查詢基本工資高于公司平均薪金的全部雇員信息

--查詢基本工資高于公司平均薪金的全部雇員信息
SELECT *
FROM emp e
WHERE e.sal>(
SELECT AVG(sal)
FROM emp);

單行多列子查詢。

**示例四、**查找出與ALLEN從事同一工作,并且基本工資高于雇員編號為7521的全部雇員信息,

--查找出與ALLEN從事同一工作,并且基本工資高于雇員編號為7521的全部雇員信息,
SELECT *
FROM emp e
WHERE e.job=(
  SELECT job
  FROM emp 
  WHERE ename='ALLEN') 
  AND e.sal>(
  SELECT sal
  FROM emp 
  WHERE empno=7521);

**示例五、**查詢與SCOTT從事同一工作且工資相同的雇員信息

SELECT *
FROM emp e
WHERE (e.job,e.sal) = (
  SELECT job,sal
  FROM emp 
  WHERE ename='SCOTT')
  AND ename<>'SCOTT';

**示例六、**查詢與雇員7566從事同一工作且領(lǐng)導(dǎo)相同的全部雇員信息

  --查詢與雇員7566從事同一工作且領(lǐng)導(dǎo)相同的全部雇員信息
SELECT *
FROM emp e
WHERE (e.job,e.mgr) =(
        SELECT job,mgr
        FROM emp
      WHERE empno=7566
);

**示例七、**查詢與ALLEN從事同一工作且在同一年雇傭的全部雇員信息(包括ALLEN)

--查詢與ALLEN從事同一工作且在同一年雇傭的全部雇員信息(包括ALLEN)
SELECT *
FROM emp e
WHERE (e.job,to_char(e.hiredate,'yyyy'))=(
           SELECT job,to_char(hiredate,'YYYY')
            FROM emp
            WHERE ename='ALLEN'
);

多行單列子查詢

主要使用三種操作符:IN、ANY、ALL

IN操作

**示例八、**查詢出與每個(gè)部門中最低工資相同的全部雇員信息

--查詢出與每個(gè)部門中最低工資相同的全部雇員信息
SELECT *
FROM emp e
WHERE e.sal IN(
     SELECT MIN(sal)
    FROM emp
    GROUP BY deptno
);

**示例九、**查詢出不與每個(gè)部門中最低工資相同的全部雇員信息

--查詢出不與每個(gè)部門中最低工資相同的全部雇員信息
SELECT *
FROM emp e
WHERE e.sal NOT IN(
     SELECT MIN(sal)
    FROM emp
    GROUP BY deptno
);

FROM子查詢:

FROM字句以后跟上的數(shù)據(jù)來源不僅是數(shù)據(jù)表,還能夠是一個(gè)查詢結(jié)果,這就是FROM子查詢
通常FROM子查詢的返回類型的多行多列的結(jié)果集javascript

查詢出平均工資高于2000的職位名稱以及該職位的平均工資java

第一種方式:能夠使用HAVING字句實(shí)現(xiàn)

SELECT job,AVG(sal)
FROM emp
GROUP BY job
HAVING AVG(sal)>2000;

第二種方式:使用FROM子查詢

SELECT job,avgsal
FROM (
  SELECT job,AVG(sal) AS avgsal
    FROM emp
      GROUP BY job) temp
WHERE temp.avgsal>2000;

查詢出有傭金的而且工資高于傭金的員工信息:web

SELECT e1.empno,e1.ename,e1.comm,e2.sal
FROM emp e1,emp e2
WHERE e1.comm IS NOT NULL AND e1.comm<e2.sal
AND e1.empno=e2.empno;

總結(jié):

1.FROM 子查詢的數(shù)據(jù)來源是另一個(gè)查詢的結(jié)果,這個(gè)子查詢的結(jié)果至關(guān)于一張臨時(shí)數(shù)據(jù)表

2.必須為子查詢定義別名

3.若是要使用子查詢中的字段,則應(yīng)該使用"別名.字段名"的方式進(jìn)行引用

select子查詢

select后面的子查詢使用,只能是標(biāo)量查詢

#案例:查詢每個(gè)部門的員工個(gè)數(shù)

SELECT d.*,(
    SELECT COUNT(*)
    FROM employees
    WHERE employees.`department_id`=d.department_id
)

FROM
    departments d;

#案例:查詢員工號=102的部門名

SELECT department_name
FROM
employees e
INNER JOIN
    departments d
ON
    e.`department_id`=d.`department_id`
WHERE
    e.`employee_id`=102;

用子查詢

SELECT (
SELECT department_name
FROM
    employees e
INNER JOIN
    departments d
ON
    e.`department_id`=d.`department_id`
WHERE
    e.`employee_id`=102
);
`department_id`=d.`department_id`
WHERE
    e.`employee_id`=102;

用子查詢

SELECT (
SELECT department_name
FROM
    employees e
INNER JOIN
    departments d
ON
    e.`department_id`=d.`department_id`
WHERE
    e.`employee_id`=102
);

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

相關(guān)文章

  • M1芯片安裝mysql8.0數(shù)據(jù)庫的實(shí)現(xiàn)步驟(圖文)

    M1芯片安裝mysql8.0數(shù)據(jù)庫的實(shí)現(xiàn)步驟(圖文)

    這篇文章主要介紹了M1芯片安裝mysql8.0數(shù)據(jù)庫的實(shí)現(xiàn)實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • MySQL sleep函數(shù)使用方法詳解

    MySQL sleep函數(shù)使用方法詳解

    sleep函數(shù)時(shí)「延時(shí)」指定時(shí)間(單位秒),也就是讓程序停止執(zhí)行一段指定的時(shí)間,本文就給大家簡單的介紹一下MySQL sleep函數(shù)使用方法,需要的朋友可以參考下
    2023-07-07
  • Mysql視圖和觸發(fā)器使用過程

    Mysql視圖和觸發(fā)器使用過程

    這篇文章主要介紹了MySql視圖與觸發(fā)器使用過程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-12-12
  • MySQL Order By Rand()效率分析

    MySQL Order By Rand()效率分析

    本文詳細(xì)解說了MySQL Order By Rand()效率優(yōu)化的方案,并給出了優(yōu)化的思路過程,是篇不可多得的MySQL Order By Rand()效率美文
    2012-07-07
  • mysql簡單實(shí)現(xiàn)查詢結(jié)果添加序列號的方法

    mysql簡單實(shí)現(xiàn)查詢結(jié)果添加序列號的方法

    這篇文章主要介紹了mysql簡單實(shí)現(xiàn)查詢結(jié)果添加序列號的方法,結(jié)合實(shí)例形式演示了2種查詢結(jié)果添加序列號的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06
  • MySQL實(shí)現(xiàn)類似Oracle序列的方案

    MySQL實(shí)現(xiàn)類似Oracle序列的方案

    今天小編就為大家分享一篇關(guān)于MySQL實(shí)現(xiàn)類似Oracle序列的方案,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • mysql外連接與內(nèi)連接查詢的不同之處

    mysql外連接與內(nèi)連接查詢的不同之處

    在關(guān)系型數(shù)據(jù)庫中,我們經(jīng)常是把數(shù)據(jù)存儲(chǔ)到多個(gè)相互關(guān)聯(lián)的表中,這些相互關(guān)聯(lián)的表通過指定的列發(fā)生聯(lián)系,下面這篇文章主要給大家介紹了關(guān)于mysql外連接與內(nèi)連接查詢的不同之處,需要的朋友可以參考下
    2021-06-06
  • mysql?DISTINCT選取多個(gè)字段,獲取distinct后的行信息方式

    mysql?DISTINCT選取多個(gè)字段,獲取distinct后的行信息方式

    這篇文章主要介紹了mysql?DISTINCT選取多個(gè)字段,獲取distinct后的行信息方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 在sql中對兩列數(shù)據(jù)進(jìn)行運(yùn)算作為新的列操作

    在sql中對兩列數(shù)據(jù)進(jìn)行運(yùn)算作為新的列操作

    這篇文章主要介紹了在sql中對兩列數(shù)據(jù)進(jìn)行運(yùn)算作為新的列操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • MySQL獲取所有分類的前N條記錄

    MySQL獲取所有分類的前N條記錄

    本文給大家分享的是使用mysql實(shí)現(xiàn)獲取所有分類的前N條記錄的方法,本文給出了3個(gè)示例,有需要的小伙伴可以參考下。
    2015-04-04

最新評論

揭西县| 泸溪县| 阿图什市| 江口县| 竹北市| 浏阳市| 宿松县| 乃东县| 泗洪县| 宜兰县| 太谷县| 弥渡县| 平陆县| 建阳市| 黄冈市| 甘谷县| 长治县| 云梦县| 烟台市| 江山市| 洛宁县| 临武县| 麻城市| 中方县| 分宜县| 石景山区| 陵水| 桂东县| 齐齐哈尔市| 崇信县| 大渡口区| 定兴县| 宜章县| 陈巴尔虎旗| 蚌埠市| 密山市| 隆安县| 甘谷县| 讷河市| 衡南县| 呼图壁县|