EXISTS子查询:
特征:将主查询中的数据带到子查询中进行验证,如果验证成功
则子查询返回ture,当主查询接受ture的时候被验证的数据就显示,
如果在子查询中验证失败则返回false,当主查询接受到false的时候
被验证的数据就不显示
查询出有部门的雇员的信息:
SELECT *
FROM emp
WHERE deptno IS NOT NULL;
SELECT *
FROM emp
WHERE deptno IN(
SELECT deptno
FROM dept);
SELECT *
FROM emp e
WHERE EXISTS(
SELECT *
FROM dept d
WHERE e.deptno=d.deptno);
查询还没有部门的雇员的信息:
SELECT *
FROM emp e
WHERE NOT EXISTS(
SELECT *
FROM dept d
WHERE e.deptno=d.deptno);
使用NOT EXISTS的时候也是将主查询中的数据带入子查询进行验证,
如果验证成功则返回false,主查询接受到false则不显示数据,
反之则显示数据