美文网首页
Oracle常用的三大类函数详解

Oracle常用的三大类函数详解

作者: 82a7fe2508f4 | 来源:发表于2022-09-14 11:52 被阅读0次

函数

Oracle提供了很多函数用于数据的处理、统计和转换,这些函数增强了SQL语言的功能。

Oracle的函数分为单行函数、聚合函数分组函数三大类。

一、单行函数

用于SQL语句中时,只能输入一个数据,返回一个结果,常用的单行函数包括字符串函数、数字函数、日期函数、转换函数。

(1)日期函数

● oracle以内部数字格式存储日期年月日小时分钟秒

● sysdate/current_date 以date类型返回当前的日期

● add_months(d,x) 返回加上x月后的日期d的值

● LAST_DAY(d) 返回的所在月份的最后一天

● months_between(date1,date2) 返回date1和date2之间月的数目

● next_day(sysdate,星期一) 下一个星期一

获取当前时间

select current_date from dual;

select sysdate from dual;

修改日期

-- 两天后的时刻

select sysdate+2 from dual;

修改月份

-- 当前5个月后的时间

select add_months(sysdate,5) from dual;

-- 雇佣日期 2个月的时间

select ename,hiredate, add_months(hiredate,2) after from emp;

月份差

-- 雇佣日期 距离现在的 月份数

select ename, months_between(sysdate , hiredate) from emp;

最后一天

-- 返回雇佣日期 当月最后一天的时间

select last_day(sysdate) from dual;

下一个星期的时间

-- 下一个星期二

select next_day(sysdate, '星期二') from dual;

(2)日期格式转换

● to_date(c,m) -> 字符串以指定格式转换为日期

● to_char(d,m) -> 日期以指定格式转换为字符串

select to_date('2017-3-21 18:12:12', 'yyyy-mm-dd hh24:mi:ss') time from dual;

select to_char(sysdate, 'yyyy-mm-dd') from dual;

select to_char(sysdate, 'yyyy/mm/dd') from dual;

select to_char(sysdate, 'yyyy\mm\dd') from dual;

-- 注意中文的问题

-- select to_char(sysdate,'yyyy年mm月dd日') from dual;

select to_char(sysdate, 'yyyy"年"mm"月"dd"日"') from dual;

二、 多行 | 聚合 | 组函数

用于SQL语句中时,同时对多行数据进行操作,返回一个结果,例如求结果集的记录数、最小值、最大值、平均值、统计值等。

● count :统计记录数 count() -->* 或一个列名

● max min: 最大值 最小值

● sum:求和

● avg:平均值

注意:

1. 组函数仅在选择列表和Having子句中有效

2. 出现组函数,select 只能有组函数或分组字段

1. count 求个数

-- null不参与运算

select count(1) from emp;

2. max最大值,min最小值

-- 查询所有员工的 最高薪水 ,最低薪水,员工总数 -->组信息

select max(sal) maxSal , min(sal) minSal , count(1) from emp;

3. sum求和

-- 查询10部门的所有员工的工资总和

select sum(sal) from emp where deptno=10;

4. avg 平均

-- 查询工资低于平均工资的员工编号,姓名及工资

select empno, ename,sal from emp where sal<(select avg(sal) from emp);

三、 分组函数

用于计算基于分组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。

group by : 分组

1)、select出现分组函数,就不能使用 非分组信息,可以使用group by 字段

2)、group by字段 可以不出现 select 中 ,反之select 除组函数外的,其他字段必须出现在group by 中

having : 过滤组

where : 过滤行记录,不能使用组函数

having : 过滤组 可以使用组函数

-- 按 部门 查询 平均工资

select avg(sal) from emp group by deptno;

-- 按 部门 查询 平均工资,且平均工资大于2000的部门编号

select avg(sal), deptno from emp group by deptno having avg(sal)>2000;

四、 行转列

select name,

min(decode(course, '语文', score)) 语文,

min(decode(course, '数学', score)) 数学,

min(decode(course, '英语', score)) 英语

from tb_student

group by name;

相关文章

  • Oracle常用的三大类函数详解

    函数 Oracle提供了很多函数用于数据的处理、统计和转换,这些函数增强了SQL语言的功能。 Oracle的函数分...

  • 归档日志 oracle

    Oracle-归档日志详解(运行模式、分类) 一、Oracle日志分类 分三大类: Alert log files...

  • oracle常用函数详解(详细)

    oracle数据库中主要使用两种类型的函数: 1.单行函数:操作一行数据,返回一个结果 常用的单行函数有: 字符串...

  • Java 中的 BigDecimal,80% 的人都用错了..

    一、BigDecimal概述二、BigDecimal常用构造函数三、BigDecimal常用方法详解四、BigDe...

  • Oracle常用函数

    浮世三千,吾爱有三;日、月与卿;日为朝,月为暮,卿为朝朝暮暮。 常用函数 lower:把大写转小写,主要是将表中的...

  • Oracle 常用函数

    Oracle 函数概述 函数的左右 方便数据的统计。 处理查询结果。 函数分类 内置函数数值函数字符函数日期函数转...

  • 常用 Oracle 函数

    1、流程控制函数   主要作用:将查询结果翻译成其他值(即以其他形式表现出来)  使用方法:   其中column...

  • 关于SCN

    参考链接 深入剖析 - Oracle SCN机制详细解读 详解Oracle scn Oracle SCN详解 or...

  • SYSDATE, NOW等“误区”-Oracle, Postgr

    Oracle中最常用的时间类型:SYSDATE Oracle内建了时间类型sysdate,以及时间函数curren...

  • oracle的userenv和nls_lang详解

    oracle的userenv和nls_lang详解 1、userenv最常见的使用 userenv函数返回当前会话...

网友评论

      本文标题:Oracle常用的三大类函数详解

      本文链接:https://www.haomeiwen.com/subject/zuwkortx.html