Java39: 数据库三(Oracle)
发表于:2024-12-13 作者:千家信息网编辑
千家信息网最后更新 2024年12月13日,Oracle 高级查询1 集合运算union 并集 把两张表合成一张表intersect 交集 一样的留下,不一样的不要minus 减去 前面的结果减去后面的结果create table emp3 a
千家信息网最后更新 2024年12月13日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安全错误
数据库的锁怎样保障安全
网络安全设备租赁价格
网络安全问题调查报告数据
网聊视频软件开发
互联网驾培科技有限公司
软件开发月度总结报告
鸿特互联网科技服务
小学学生网络安全培训简讯
数据库链接流程图
长宁区常规软件开发收费标准
web数据库 设计
服务器布丁更新
1个云服务器多大数据量
数据库中数据安全性还有
网络安全保密意识宣传稿
新一代服务器租用
电商分销软件开发
mysql数据库怎么使用
网络安全十二条规定
苹果电脑无法找到服务器ip地址
三级数据库技术学习
建模图片数据库
青岛网络技术培训班
台炮麻将连不上服务器
强迫症的人适合做软件开发吗
符合数据库阶段的特点
福建省学生网络安全
游泳馆sql数据库管理
卸载mysql数据库服务
网络安全教案目标小班
数据库隔离等级划分