MYSQL基础(DQL子查询)

1.子查询用小括号括起来

SELECT ename FROM emp  
WHERE 
(SELECT SAL 
FROM emp 
WHERE ENAME='jack') < sal

2.WHERE子句中的子查询,子查询可以包括分组函数
子查询可以在WHERE HAVING FROM UPDATE的SET
分组函数可以在 SELECT HAVING GROUP BY

SELECT ename 
FROM emp 
 WHERE  (SELECT SAL FROM emp WHERE ENAME='jack') < sal
SELECT ename,empno,sal 
FROM emp  
WHERE sal=(SELECT MIN(SAL) FROM emp )

关系运算和单行函数不能包含返回多行结果的子查询语句

SELECT ename,empno from emp 
WHERE sal=(SELECT MIN(sal) 
FROM emp 
GROUP BY deptno)

3.多行字查询运算符
IN的使用
查询每个部门工资最低的员工姓名,员工编号,员工薪资

SELECT ename,empno,sal from emp 
WHERE  sal in (SELECT MIN(sal) FROM emp GROUP BY deptno)

ANY 的使用 只要满足结果中任意一行即可查询大于所有部门最低工资的员工姓名,员工编号,员工薪资

SELECT MIN(sal) FROM emp 
GROUP BY deptno
SELECT ename,empno,sal 
FROM emp 
WHERE sal >ANY (SELECT MIN(sal) 
FROM emp 
GROUP BY deptno)

ALL 的使用 满足结果中所有行

SELECT MIN(sal) FROM emp GROUP BY deptno
SELECT ename,empno,sal from emp where sal > ALL (SELECT MIN(sal) FROM emp GROUP BY deptno)

4.相关子查询

SELECT * 
FROM emp,dept 
WHERE emp.deptno=dept.deptno
SELECT dname,(SELECT count(empno)
FROM emp 
WHERE emp.deptno=dept.deptno 
GROUP BY emp.deptno ) 
FROM dept
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值