Oracle高级查询——学习笔记

本文详细介绍了Oracle数据库的高级查询技术,包括分组查询的使用,如AVG、SUM等分组函数以及NVL函数的应用;多表查询的各种类型,如内连接、外连接、自连接的实例说明;还有子查询的运用,探讨了子查询的位置、执行顺序以及与主查询的关系等问题。
摘要由CSDN通过智能技术生成

1.分组查询

(1)分组函数

包括:AVG、SUM、MIN、MAX、MAX、COUNT、WM_CONCAT

另外:NVL函数也很重要

-- NAL函数的目的是把一个空值(null)转换成一个实际的值;
-- 如果表达式1为空值,NVL返回值为表达式2的值,否则返回表达式1的值;
-- 其表达式的值可以是数字型、字符型和日期型,但表达式1和表达式2的数据类型必须相同。
NVL(表达式1,表达式2)

(2)在分组函数中使用group by

-- group by 子句,例:
   select deptno ,avg(sal)       
   from emp 
   group by deptno;
-- 抽象 
-- select a ,组函数(x) 
-- from table 
-- group by a ;  

-- 在select列表中所有未包含在组函数中的列都应该包含在group by子句中,
-- 例:
   select deptno ,job,sum(sal) 
   from emp 
   group by deptno, job
-- order by depton;

(3)在分组函数中使用having/where过滤分组数据

-- having子句的使用以及和where的区别

-- 1.where条件中不能使用组函数,having可以

-- 2.在输入顺序上,
-- where先过滤后分组,例:
select deptno,avg(sal)
from emp
where deptno=10
group by deptno;
-- having先分组再过滤,例:
select deptno,avg(sal)
from emp
group by deptno
having deptno=10;

-- 3.如果两个可以通用,从sql优化的角度上看,尽量使用where。where先过滤掉无关数据,对执行效率有大幅提高)

(4)在分组函数中使用order by

-- 在分组函数查询语句中进行排序,可以用order by后跟分组函数&
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值