Java39: 数据库三(Oracle)
发表于:2025-11-16 作者:千家信息网编辑
千家信息网最后更新 2025年11月16日,Oracle 高级查询1 集合运算union 并集 把两张表合成一张表intersect 交集 一样的留下,不一样的不要minus 减去 前面的结果减去后面的结果create table emp3 a
千家信息网最后更新 2025年11月16日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安全错误
数据库的锁怎样保障安全
国产化服务器直销价格
局域网在线服务器
品质网络技术服务欢迎咨询
花园战争服务器
通化软件开发
政府采购网怎么查询服务器价格
连接数据库下所有表
工业网络技术技能
天门专业的软件开发中心
软件开发做c的工资一般多少
数据库技术及应用教程吴慧婷
网络安全法律法规建设论文
dhcp服务器租期时间最好
镇江手机软件开发培训
数据库索引类别
ip网络技术实验二
创造与魔法有哪些服务器可以拆家
中国民航网络安全竞赛
厦门数据库培训哪家好
网络安全从我做起手抄报四年级
软件开发必学框架
以下那个功能签名服务器无法实现
魔兽怀旧服可以升级哪些服务器
服务器80端口劫持
矿井测试数据库如何赋值
如何判断数据库需要多少核弹
企业内部网络安全
数据库扩展字段
医院网络安全工作总体方针
数据库斯坦索姆