Java39: 数据库三(Oracle)
发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,Oracle 高级查询1 集合运算union 并集 把两张表合成一张表intersect 交集 一样的留下,不一样的不要minus 减去 前面的结果减去后面的结果create table emp3 a
千家信息网最后更新 2025年02月05日Java39: 数据库三(Oracle)
Oracle 高级查询
1 集合运算
union 并集 把两张表合成一张表
intersect 交集 一样的留下,不一样的不要
minus 减去 前面的结果减去后面的结果
create table emp3 as select * from emp2 where deptno=20;create table emp4 as select * from emp2 where deptno=30;alter table emp3 rename to emp20;alter table emp4 rename to emp30;select * from emp20;select * from emp30;select * from emp20 union select * from emp30;select * from emp30 intersect select * from emp2;select * from emp2 minus select * from emp30;
2 connect by 和start with
依托于该语法,我们可以将一个表形结构的以树的顺序列出来
提供一个伪列 level
level
找到头select ename from emp2 where mgr is null;select empno,ename,mgr from emp start with ename='KING' connect by prior empno=mgr;select level,empno,ename,mgr from emp start with ename=(select ename from emp2 where mgr is null) connect by prior empno=mgr;select * from (select level lv,empno,ename,mgr from emp start with ename=(select ename from emp2 where mgr is null) connect by prior empno=mgr) where lv=2;
3高级分组函数
rollup 函数 小计
rollup 函数多一行 小计
对于分组的列为null
对于聚集函数为求 小计
select job,sum(sal) from emp GROUP BY rollup(job);select job,sum(sal),round(avg(sal)),max(sal),count(empno)from emp group by rollup(job);
统计rollup(x,y) 统计第一个x 不统计y
select dname,job,sum(sal) from emp inner join dept using(deptno) group by rollup(dname,job);
cube 统计所有的列
select dname,job,sum(sal) from emp inner join dept using(deptno) froup by cube(dname,job) order by dname;
rollup 和cube 就是汇总的结果
grouping 和grouping sets
select grouping(dname),dname ,grouping(job),job,sum(sal) from emp inner join dept using(deptno) group by rollup(dname,job) order by dname;
select * from (select grouping(dname),dname ,grouping(job) N,job,sum(sal) from emp inner join dept using(deptno) group by rollup(dname,job) order by dname) where dname='SALES' and N=1 ;
select grouping(dname),dname,grouping(job),job,sum(sal) from emp inner join dept using(deptno) group by cube(dname,job) order by dname;
只查询汇总的行 总的汇总也不要
select dname,job,sum(sal) from emp inner join dept using(deptno) group by grouping sets(dname,job);
如果需要查询的结果只有小计 可以用cube 和 grouping sets 用grouping sets 的效率高于cube 和rollup
排名函数
既能排序又能排名
rank() over( orader by xx)
重复就会削去下一个编号
select rank() over(order by sal desc),ename,sal from emp;
dense_rank() over(orader by xx)
重复不削去编号
select dense_rank() over(order by sal desc),ename,sal from emp;
先排序在rownum 比rownum 简单
select row_number() over(order by sal desc),ename from emp;
函数
结果
小计
统计
查询
高级
分组
排序
一行
交集
只有
就是
效率
结构
语法
顺序
运算
数据
数据库
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
我的世界服务器地址1.0
生产制造管理软件开发价格
怎样查看自己购买的服务器id
以网络安全手抄报为主题图片
网购网络安全宣传
sql服务器数据库引擎
实践教学管理系统数据库
集成软件开发环境有哪些
用友通 数据库
工业设计服务器电脑
wind数据库和知网
网络安全员主要学习内容
乾颐堂华为网络安全基础课
unix软件开发工程师
网宿科技与互联网
驻马店源话网络技术有限公司
软件开发在韶关能找上工作吗
酒店缺乏网络技术人才
天津网络安全岗位
所有的网络安全元素里最安全
高效 网络安全 舆情舆论
网络安全标语五个字
传统数据库变化
辽宁公安厅网络安全保卫总队
网络安全讲座公众号
天风证券国家网络安全
傻瓜软件开发pc
猫和老鼠手游服务器名称大全
数据库的十大功能
天津图腾服务器机柜