Oracle笔记4

一、子查询和函数

子查询 嵌套查询
子查询在 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

 

posted @ 2020-07-20 19:44  AI大白学AI  阅读(128)  评论(0编辑  收藏  举报