当前位置:   article > 正文

MySQL --- 子查询 - 标量子查询

标量子查询

标量子查询

MySQL --- 子查询 - 子查询概念、规范、分类

子查询返回的是单行单列的数据,就是一个值

主要用在WHERE子句中

需要用到一些运算符 大于>、小于<、等于=、不等于<>、!=

子查询的书写方式

①从外往内写

②从内往外写

  • 查询出基本工资比ALLEN低的全部员工信息

从外往内写

  1. -- 查询出全部员工信息
  2. SELECT * FROM emp;
  3. -- ALLEN的工资
  4. SELECT sal FROM emp WHERE ename='ALLEN';
  5. -- 查询出([基本工资比ALLEN低的]全部员工信息)
  6. SELECT * FROM emp WHERE sal<(SELECT sal FROM emp WHERE ename='ALLEN');

 

  • 查询基本工资高于公司平均工资的全部员工信息

  1. -- 查询公司平均工资
  2. SELECT AVG(sal) FROM emp;/*1988.3333*/
  3. -- 查询基本工资高于公司平均工资的全部员工信息
  4. SELECT * FROM emp WHERE sal>1988.3333;
  5. -- 查询[基本工资高于(公司平均工资)的全部员工信息]
  6. SELECT * FROM emp WHERE sal>(SELECT AVG(sal) FROM emp);

从内往外写

MySQL --- 数据库查询 - 聚合函数的使用、聚合查询、分组查询

  • 查询出与ALLEN从事同一工作,并且基本工资高于员工编号为7521的全部员工信息

  1. -- 查询出与ALLEN从事同一工作
  2. SELECT * FROM emp
  3. WHERE job=(SELECT job FROM emp WHERE ename='ALLEN')
  4. -- 并且基本工资高于员工编号为7521的全部员工信息
  5. AND sal>(SELECT sal FROM emp WHERE empno=7521)
  6. -- 把 ALLEN 从查询结果中剔除
  7. AND ename<>'ALLEN';

 

可以发现查询结果中包含 ALLEN,需要把 ALLEN 从查询结果中剔除

单行子查询

子查询返回的是单行多列的数据,就是一条记录

  • 查询与SCOTT从事同一工作且工资相同的员工信息

  1. -- 查询与SCOTT从事同一工作且工资相同的员工信息
  2. SELECT * FROM emp
  3. WHERE job=(SELECT job FROM emp WHERE ename='SCOTT')
  4. AND sal=(SELECT sal FROM emp WHERE ename='SCOTT')
  5. AND ename<>'SCOTT';

使用标量子查询

使用单行子查询

  1. -- 查询SCOTT的员工信息
  2. SELECT job,sal FROM emp WHERE ename='SCOTT';
  3. -- 查询与SCOTT从事同一工作且工资相同的员工信息
  4. SELECT * FROM emp WHERE (job,sal)=(SELECT job,sal FROM emp WHERE ename='SCOTT');

  • 查询与员工编号为7566从事同一工作且领导相同的全部员工信息

  1. -- 查询与员工编号为7566从事同一工作且领导相同的全部员工信息
  2. SELECT * FROM emp WHERE
  3. (job,mgr)=(SELECT job,mgr FROM emp WHERE empno=7566);

  • 查询与ALLEN从事同一工作且在同一年雇佣的全部员工信息(包含ALLEN)

列数相同、数据类型相同可以直接进行比较

MySQL --- 常用函数 - 数值函数、时间日期函数、条件判断函数、其他函数

  1. -- 查询与ALLEN从事同一工作且在同一年雇佣的全部员工信息(包含ALLEN)
  2. SELECT * FROM emp WHERE
  3. (job,DATE_FORMAT(hiredate,'%Y'))=
  4. (SELECT job,DATE_FORMAT(hiredate,'%Y') FROM emp WHERE ename='ALLEN');

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/536228
推荐阅读
相关标签
  

闽ICP备14008679号