概述
–使用集合函数
– Union,并集(去重) 对两个结果集进行并集操作,不包括重复行同时进行默认规则的排序;
– Union All,全集(不去重) 对两个结果集进行并集操作,包括重复行,不进行排序 ;
– Intersect,交集(找出重复) 对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序;
–Minus,差集(减去重复) 对两个结果集进行差操作,不包括重复行,同时进行默认规则的排序
select * from emp where deptno = 30
Union
select * from emp where sal > 2000;
select * from emp where deptno = 30
Union All
select * from emp where sal > 2000;
–查询不存在员工的部门的部门编号
select deptno from dept
Minus
select distinct deptno from emp;
–like 模糊匹配 %任意个任意字符 _一个任意字符
select * from emp where ename like 'SMITH'; --精确匹配
–查询公司中员工姓名 以A开头的员工信息
select * from emp where ename like 'A%';
–查询公司中员工姓名 第二个字符为A的员工信息
select * from emp where ename like '_A%';
–查询公司中员工姓名 中存在%的员工 escape(‘a’); 转义字符
select * from emp where ename like '%%%' escape('');
–事务的提交和回滚(重要)
commit;
rollback;
–函数
–内置函数和自定义函数
–单行函数 : 一条记录返回一个结果的
–多行函数|组函数|聚合函数 : 多条记录返回一条结果的
– 当前时间
select distinct sysdate from emp;
select sysdate from dual;
select current_date from dual;
– in (值1,值2,值3…) 当对一个字段的多个值进行等值匹配,可以使用in
– 查询工资为i 1500, 2000, 2500, 5000的员工的信息
select * from emp where sal=1500 or sal=2000 or sal=2500 or sal=5000;
select * from emp where sal in (1500 ,2000 ,2500 ,5000);
–子查询
把一个查询作为另一个查询的条件
select *
from emp
where deptno in
(select deptno from dept where dname in ('SALES', 'ACCOUNTING'));
–exists(结果集) 存在既保留,存在即合法
–select 数据 from 数据来源 where exists(结果集)
–从from中拿出一条数据 去where 中进行判断 ,如果exists(结果集)中有值,当前这一条就保留|满足条件,如果exists(结果集)中没有值,当前这一条就不保留
–结果:查询出所有的结果
select *
from emp
where exists
(select deptno from dept where dname in ('SALES', 'ACCOUNTING'));
–结果:空的
select * from emp where exists (select * from emp where deptno = 40);
–排序: 先确定结果集然后对于结果集中的数据进行排序
–select 数据 from 数据来源 where 条件 order by 排序字段1,排序字段…; desc 降序 asc升序(默认)
-- from where select order by
select * from emp where deptno = 30 order by sal desc,empno asc;
select * from emp where deptno = 30 order by comm nulls first; --所有的nulls值最先first|最后显示last
–组函数|聚合函数|多行函数 : 对结果集进行组函数计算
–多行记录返回一个结果
–count(条件) sum(条件) max() min() avg()
–注意: 组函数不能和非分组字段一起使用
-- 统计一下一共有多少个员工
select count(empno) from emp;
select count(deptno) from emp;
select count(*) from emp;
select count(1) from emp; --伪列 相当于为每条数据的后面添加一个伪列字段 1
– 计算本公司每个月一共要在工资上花费多少钱(求和sum())
select sum(sal) from emp;
– 查询本公司的最高工资(max())和最低工资(min())
select max(sal) from emp;
select min(sal) from emp;
– avg 平均工资
select avg(sal) from emp;
最后
以上就是从容荷花为你收集整理的oracle的单行函数和聚合函数的全部内容,希望文章能够帮你解决oracle的单行函数和聚合函数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复