• <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • MySQL數據庫概述及數據準備
    MySQL數據庫常用命令
    MySQL數據庫查看表結構
    MySQL查詢字段
    MySQL條件查詢
    MySQL排序
    MySQL函數
    MySQL分組函數/聚合函數/多行處理函數
    MySQL分組查詢
    MySQL連接查詢
    MySQL子查詢
    MySQL UNION
    MySQL中limit的用法
    MySQL表
    MySQL存儲引擎
    MySQL事務
    MySQL索引
    MySQL視圖
    MySQL DBA命令
    MySQL數據庫設計的三大范式
    MySQL數據庫練習題

    MySQL子查詢

     

     

    子查詢就是嵌套的select語句,可以理解為子查詢是一張表。

     

     

    在where語句中使用子查詢,也就是在where語句中加入select語句

     

    ● 查詢員工信息,查詢哪些人是管理者,要求顯示出其員工編號和員工姓名

     

    實現思路:

     

    1、首先取得管理者的編號,去除重復的

     

    select distinct mgr from emp where mgr is not null;
    
    distinct 去除重復行

     

    2、查詢員工編號包含管理者編號的

     

    select empno, ename from emp where empno in(select mgr from emp where mgr is not null);

     

     

    ● 查詢哪些人的薪水高于員工的平均薪水,需要顯示員工編號,員工姓名,薪水實現思路

     

    1、取得平均薪水

     

    select avg(sal) from emp;

     

    2、取得大于平均薪水的員工

     

    select empno, ename, sal from emp where sal > (select avg(sal) from emp);

     

     

     

    在from語句中使用子查詢,可以將該子查詢看做一張表

     

    ●  查詢員工信息,查詢哪些人是管理者,要求顯示出其員工編號和員工姓名

     

    1、首先取得管理者的編號,去除重復的

     

    select distinct mgr from emp where mgr is not null;

     

    2、將以上查詢作為一張表,放到from語句的后面

     

    使用92語法:
    select e.empno, e.ename from emp e, (select distinct mgr from emp where mgr is not null) m where e.empno=m.mgr;
    使用99語法:
    select e.empno, e.ename from emp e join (select distinct mgr from emp where mgr is not null) m on e.empno=m.mgr;

     

     

    ● 查詢各個部門的平均薪水所屬等級,需要顯示部門編號,平均薪水,等級編號

     

    實現思路

     

    1、首先取得各個部門的平均薪水

     

    select deptno, avg(sal) avg_sal from emp group by deptno;

     

     

    2、將部門的平均薪水作為一張表與薪水等級表建立連接,取得等級

     

    select deptno,avg(sal) avg_sal from emp group by deptno;

     

    select * from salgrade;

     

    select a.deptno,a.avg_sal,g.grade from (select deptno,avg(sal) avg_sal from emp group by deptno ) a join salgrade g on a.avg_sal between g.losal and hisal;

     

     

     

    在select語句中使用子查詢

     

    ● 查詢員工信息,并顯示出員工所屬的部門名稱

     

    第一種做法,將員工表和部門表連接

     

    select e.ename, d.dname from emp e, dept d where e.deptno=d.deptno

     

    第二種做法,在select語句中再次嵌套select語句完成部分名稱的查詢

     

    select e.ename, (select d.dname from dept d where e.deptno=d.deptno) as dname from emp e

     

     

    全部教程
  • <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • 面对面棋牌游戏