一、子查询和函数
子查询 嵌套查询
子查询在 SELECT、 UPDATE、 DELETE 语句内部可以出现SELECT语句
单行子查询 最多一行数据 0 1
多行子查询 可能有多行数据 0 1 n
作为外部查询条件从句一部分 where
左外外部查询的临时表 from
select ename, job, sal from emp where deptno = (select deptno from dept where dname='SALES') ;
查找在'DALLAS'工作的员工的姓名,工作,薪水?
select ename, job, sal from emp where deptno in (select deptno from dept where loc='DALLAS' ) ;
多行子查询 any all in
伪列 只能查询 不能增删改
rowid 表中行的物理地址
rownum 查询结果集中行的编号
ROWNUM与ROWID不同,ROWID是插入记录时生成,ROWNUM是查询数据时生成。
分页查询 :
select * from (select rownum r, ename, job, sal from emp ) t where t.r>=6 and t.r<=10;
单行函数
字符函数
数字函数
日期函数
转换函数
其他单行函数
nvl()
nvl2()
聚合函数
求和 sum()
求平均 avg()
最大值 max()
最小值 min()
数据统计 count()
分组 group by
select deptno, count(*) from emp group by deptno having count(*)>=5 ;
统计(不统计经理(MANAGER))平均工资大于2000的部门 ?
select deptno, avg(sal) from emp where job!='MANAGER' group by deptno having avg(sal)>2000;
分组之前过滤 where 分组之后过滤 having