一、 函数(内置)
1、 集合函数
(1)Union 并集——去重
对两个结果集进行并集操作,不包括重复行同时进行默认规则的排序;
(2)Union All 全集——不去重
对两个结果集进行并集操作,包括重复行,不进行排序 ;
(3)Intersect 交集——求重复
对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序;
(4)Minus 差集——减去重复
对两个结果集进行差操作,不包括重复行,同时进行默认规则的排序;
2、 单行函数
(1) 概述
一条记录返回一个结果的
(2) 常用单行函数
1)-- 当前时间
1、 select distinct sysdate from emp;
2 、select sysdate from dual;
3 、select current_date from dual;
2)-- 加减日期(2天以后是几号)
select sysdate+2 from dual;
3)-- 加月份(查询所有员工的试用期期到期(转正的日期) 3个月试用期)
格式:add_months(日期对象,月份数)
select hiredate,add_months(hiredate,3) from emp;
4)--判定函数
decode(判定字段,值1,结果1,值2,结果2,值3,结果3....(,默认结果))
5)--字符串与日期的转换
- 字符串转日期
--to_date(数据,格式) - 日期转字符串
--to_char(数据,格式)
3、 多行函数(组函数/聚合函数)
(1) 概述
多条记录返回一条结果的
(2) 常用多行函数
个数:count(条件)
求和: sum(条件)
最大值:max()
最小值:min()
平均值: avg()
(3) 分组
1)格式与流程
-
格式:
group by 分组字段查询公式:select 数据 from 数据来源 where 行过滤条件 group by 分组字段1,.. having 过滤组信息(以组为单位过滤) order by 排序字段..;
流程:
执行流程: from -- where --group by --having --select -- order by
二、 子查询和行转列
1、子查询
2、行转列
利用decode()实现行转列,简化表
三、 rowid和rownum(伪列)
1、rowid(去重)
2、rownum(排序,分页)
四、 表连接-92语法(多表查询)
1、内连接
有where ,满足条件才显示,不满足不显示
2、等值连接
3、非等值连接
4、自连接
一张表,当多张表使用