select * from emp;empno,ename,job,mgr,hiredate,sal,comm,deptnohttps://www.cnblogs.com/yxfyg/p/12731926.html 员工表 部门表 薪资级别 表的数据和创建语句都在此网页
自连接
多表查询的自连接:将一张表当成多个表进行链接
需要给表取别名:表名 表的别名
列名不明确,可以指定列的别名 : 列名 as 列的别名
例子:显示公司员工名字和他的上级的名字
select worker.ename as 员工名,boss.ename as 上级名from emp worker,emp bosswhere worker.mgr = boss.empno
子查询
子查询是指嵌入在其他sql语句中的select语句,也叫嵌套查询
单行子查询:只返回一行数据的子查询语句
多行子查询:返回多行数据的子查询 使用关键字in
#子查询
#如何显示与Smith统一部门的所有员工
/
1:先查询Smith的部门号
2:把上面的select语句当成一个子查询使用
/
SELECT deptno FROM emp WHERE ename =’SMITH’;
SELECT ename
FROM emp
WHERE deptno = (SELECT deptno FROM emp WHERE ename =’SMITH’);
#多行子查询
#例子:查询和部门号是10的相同工作岗位的雇员的名字,岗位,工资,部门号,但是不含10自己的
SELECT DISTINCT job
FROM emp
WHERE deptno = 10;
SELECT ename,job,sal,deptno
FROM emp
WHERE job IN ( SELECT DISTINCT job
FROM emp
WHERE deptno = 10)
AND deptno <> 10;
