目录
一、字符串函数
三、日期函数
四、转换函数
五、其它单行函数
六、聚合函数
首页 数据库 Oracle 归纳整理Oracle中常用函数

归纳整理Oracle中常用函数

Aug 30, 2022 pm 02:00 PM
oracle

本篇文章给大家带来了关于Oracle的相关知识,其中详细讲解了Oracle中常用函数,通过示例代码介绍,希望对大家的学习或工作具有一定的参考借鉴价值,希望对大家有帮助。

归纳整理Oracle中常用函数

推荐教程:《Oracle视频教程

oracle数据库中主要使用两种类型的函数:

1.  单行函数:操作一行数据,返回一个结果

  • 常用的单行函数有:
  • 字符串函数:对字符串操作。
  • 数字函数:对数字进行计算,返回一个数字。
  • 日期函数:对日期和时间进行处理。
  • 转换函数:可以将一种数据类型转换为另外一种数据类型。

2.  聚合函数(多行函数、分组函数、组函数):操作多行数据,并返回一个结果。比如 SUM

一、字符串函数

字符函数接受字符参数,这些参数可以是表中的列,也可以是一个字符串表达式。

常用的字符函数:

函数 说明
ASCII(X) 返回字符X的ASCII码
CONCAT(X,Y) 连接字符串X和Y
INSTR(X,STR[,START][,N) 从X中查找str,可以指定从start开始,也可以指定从n开始
LENGTH(X) 返回X的长度
LOWER(X) X转换成小写
UPPER(X) X转换成大写
LTRIM(X[,TRIM_STR]) 把X的左边截去trim_str字符串,缺省截去空格
RTRIM(X[,TRIM_STR]) 把X的右边截去trim_str字符串,缺省截去空格
TRIM([TRIM_STR  FROM]X) 把X的两边截去trim_str字符串,缺省截去空格
REPLACE(X,old,new) 在X中查找old,并替换成new
SUBSTR(X,start[,length]) 返回X的字串,从start处开始,截取length个字符,缺省length,默认到结尾

上面各函数的例子:

示例 示例结果
SELECT ASCII('a') FROM dual; 97
SELECT CONCAT('Hello','world') FROM dual; Helloworld
SELECT INSTR('Hello world','or') FROM dual; 8
SELECT LENGTH('Hello') FROM dual; 5
SELECT LOWER('Hello') FROM dual; hello
SELECT UPPER('hello') FROM dual; HELLO
SELECT LTRIM('=Hello=','=') FROM dual; Hello=
SELECT RTRIM('=Hello=','=') FROM dual; =Hello
SELECT TRIM('='FROM'=Hello=') FROM dual; Hello
SELECT REPLACE('ABCDE','CD','AAA')FROM dual; ABAAAE
SELECT SUBSTR('ABCDE',2,3) FROM dual; BCD

二、数字函数

数字函数接受数字参数,参数可以来自表中的一列,也可以是一个数字表达式。

函数 说明 示例
ABS(X) X的绝对值 ABS(-3)=3
ACOS(X) X的反余弦 ACOS(1)=0
COS(X) 余弦 COS(1)=0.54030230586814
CEIL(X) 大于或等于X的最小值 CEIL(5.4)=6
FLOOR(X) 小于或等于X的最大值 FLOOR(5.8)=5
LOG(X,Y) X为底Y的对数 LOG(2,4)=2
MOD(X,Y) X除以Y的余数 MOD(8,3)=2
POWER(X,Y) X的Y次幂 POWER(2,3)=8
ROUND(X[,Y]) X在第Y位四舍五入 ROUND(3.456,2)=3.46
SQRT(X) X的平方根 SQRT(4)=2
TRUNC(X[,Y]) X在第Y位截断 TRUNC(3.456,2)=3.45

说明:

1.ROUND(X[,Y]),四舍五入。

在缺省 y 时,默认 y=0;比如:ROUND(3.56)=4。

y 是正整数,就是四舍五入到小数点后 y 位。ROUND(5.654,2)=5.65。

y 是负整数,四舍五入到小数点左边|y|位。ROUND(351.654,-2)=400。

2.TRUNC(x[,y]),直接截取,不四舍五入。

在缺省 y 时,默认 y=0;比如:TRUNC (3.56)=3。

Y是正整数,就是四舍五入到小数点后 y 位。TRUNC (5.654,2)=5.65。

y 是负整数,四舍五入到小数点左边|y|位。TRUNC (351.654,-2)=300。

三、日期函数

日期函数对日期进行运算。常用的日期函数有:

1、ADD_MONTHS(d,n),在某一个日期 d 上,加上指定的月数 n,返回计算后的新日期。

d 表示日期,n 表示要加的月数。

例:

SELECT SYSDATE,add_months(SYSDATE,5) FROM dual;
登录后复制

 

2、LAST_DAY(d),返回指定日期当月的最后一天。

例:

SELECT SYSDATE,last_day(SYSDATE) FROM dual;
登录后复制

 

3、ROUND(d[,fmt]),返回一个以 fmt 为格式的四舍五入日期值, d 是日期, fmt 是格式

模型。默认 fmt 为 DDD,即月中的某一天。

  •   如果 fmt 为“YEAR”则舍入到某年的 1 月 1 日,即前半年舍去,后半年作为下一年。

  •   如果 fmt 为“MONTH”则舍入到某月的 1 日,即前月舍去,后半月作为下一月。

  •   默认为“DDD”,即月中的某一天,最靠近的天,前半天舍去,后半天作为第二天。

  •   如果 fmt 为“DAY”则舍入到最近的周的周日,即上半周舍去,下半周作为下一周周日。

例:

SELECT SYSDATE,ROUND(SYSDATE),ROUND(SYSDATE,'day'),

ROUND(SYSDATE,'month'),ROUND(SYSDATE,'year') FROM dual;
登录后复制

 

与 ROUND 对应的函数时 TRUNC(d[,fmt])对日期的操作, TRUNC 与 ROUND 非常相似,只是不对日期进行舍入,直接截取到对应格式的第一天。

4、EXTRACT(fmt FROM d),提取日期中的特定部分。

fmt 为:YEAR、MONTH、DAY、HOUR、MINUTE、SECOND。其中 YEAR、MONTH、DAY可以为 DATE 类型匹配,也可以与 TIMESTAMP 类型匹配;但是 HOUR、MINUTE、SECOND 必须与 TIMESTAMP 类型匹配。

HOUR 匹配的结果中没有加上时区,因此在中国运行的结果小 8 小时。

例:

SELECT SYSDATE "date",

       EXTRACT(YEAR FROM SYSDATE)"year",

       EXTRACT(MONTH FROM SYSDATE)"month",

       EXTRACT(DAY FROM SYSDATE)"day",

       EXTRACT(HOUR FROM SYSTIMESTAMP)"hour",

       EXTRACT(MINUTE FROM SYSTIMESTAMP)"minute",

       EXTRACT(SECOND FROM SYSTIMESTAMP)"second"

FROM dual;
登录后复制

四、转换函数

转换函数将值从一种数据类型转换为另外一种数据类型。常见的转换函数有:

1、TO_CHAR(d|n[,fmt])

把日期和数字转换为制定格式的字符串。Fmt是格式化字符串

代码演示:TO_CHAR对日期的处理

SELECT TO_CHAR(SYSDATE,'YYYY"年"MM"月"DD"日" HH24:MI:SS')"date" FROM dual;
登录后复制

 

代码解析:

在格式化字符串中,使用双引号对非格式化字符进行引用

针对数字的格式化,格式化字符有:

参数示例说明
9999指定位置处显示数字
.9.9指定位置返回小数点
,99,99指定位置返回一个逗号
$9数字开头返回一个美元符号
EEEE9.99EEEE科学计数法表示
LL999数字前加一个本地货币符号
PR999PR如果数字式负数则用尖括号进行表示

代码演示:TO_CHAR对数字的处理

SELECT TO_CHAR(-123123.45,'L9.9EEEEPR')"date" FROM dual;
登录后复制

2、TO_DATE(X,[,fmt])

把一个字符串以fmt格式转换成一个日期类型

3、TO_NUMBER(X,[,fmt])

把一个字符串以fmt格式转换为一个数字

代码演示:TO_NUM函数

SELECT TO_NUMBER('-$12,345.67','$99,999.99')"num" FROM dual;
登录后复制

五、其它单行函数

1、NVL(X,VALUE)

如果X为空,返回value,否则返回X

例:对工资是2000元以下的员工,如果没发奖金,每人奖金100元

代码演示:NVL函数

SELECT ENAME,JOB,SAL,NVL(COMM,100) FROM EMP WHERE SAL<2000;
登录后复制

-------------------------------------------------------------------

ENAME JOB SAL NVL(COMM,100)

SMITH CLERK 800 100

ALLEN SALESMAN 1600 300

WARD SALESMAN 1250 500

MARTIN SALESMAN 1250 1400

TURNER SALESMAN 1500 50

ADAMS CLERK 1100 100

JAMES CLERK 950 100

-------------------------------------------------------------------

7 rows selected

2、NVL2(x,value1,value2)

如果x非空,返回value1,否则返回value2

例:对EMP表中工资为2000元以下的员工,如果没有奖金,则奖金为200元,如果有奖金,则在原来的奖金基础上加100元

代码演示:NVL2函数

SELECT ENAME,JOB,SAL,NVL2(COMM,comm+100,200) "comm" FROM EMP WHERE SAL<2000;
登录后复制

-------------------------------------------------------------------

ENAME JOB SAL comm

SMITH CLERK 800 200

ALLEN SALESMAN 1600 400

WARD SALESMAN 1250 600

MARTIN SALESMAN 1250 1500

TURNER SALESMAN 1500 150

ADAMS CLERK 1100 200

JAMES CLERK 950 200

MILLER CLERK 1300 200

-------------------------------------------------------------------------------------------------------

8 rows selected

六、聚合函数

聚合函数同时对一组数据进行操作,返回一行结果,比如计算一组数据的总和,平均值等。

名称作用语法
AVG平均值AVG(表达式)
SUM求和SUM(表达式)
MIN、MAX最小值、最大值MIN(表达式)、MAX(表达式)
COUNT数据统计COUNT(表达式)

例:求本月所有员工的基本工资总和

代码演示:sum函数

SELECT SUM(sal) FROM emp;
登录后复制

-------------------------------------------------------------------

SUM(SAL)

29025

例:求不同部门的平均工资

代码演示:AVG函数下的分组查询

SELECT DEPTNO,AVG(SAL) FROM EMP GROUP BY DEPTNO;
登录后复制

-------------------------------------------------------------------

DEPTNO    AVG(SAL)

---------    ----------

30    1566.66666

20     2175

10    2916.66666

推荐教程:《Oracle视频教程

以上是归纳整理Oracle中常用函数的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

oracle如何查表空间大小 oracle如何查表空间大小 Apr 11, 2025 pm 08:15 PM

要查询 Oracle 表空间大小,请遵循以下步骤:确定表空间名称,方法是运行查询:SELECT tablespace_name FROM dba_tablespaces;查询表空间大小,方法是运行查询:SELECT sum(bytes) AS total_size, sum(bytes_free) AS available_space, sum(bytes) - sum(bytes_free) AS used_space FROM dba_data_files WHERE tablespace_

oracle视图如何加密 oracle视图如何加密 Apr 11, 2025 pm 08:30 PM

Oracle 视图加密允许您加密视图中的数据,从而增强敏感信息安全性。步骤包括:1) 创建主加密密钥 (MEk);2) 创建加密视图,指定要加密的视图和 MEk;3) 授权用户访问加密视图。加密视图工作原理:当用户查询加密视图时,Oracle 使用 MEk 解密数据,确保只有授权用户可以访问可读数据。

oracle数据库如何导入 oracle数据库如何导入 Apr 11, 2025 pm 08:06 PM

数据导入方法:1. 使用 SQLLoader 实用程序:准备数据文件、创建控制文件、运行 SQLLoader;2. 使用 IMP/EXP 工具:导出数据、导入数据。提示:1. 大数据集推荐 SQL*Loader;2. 目标表应存在,列定义匹配;3. 导入后需验证数据完整性。

oracle如何查看实例名 oracle如何查看实例名 Apr 11, 2025 pm 08:18 PM

在 Oracle 中查看实例名的方法有三种:命令行中使用 "sqlplus" 和 "select instance_name from v$instance;" 命令。在 SQL*Plus 中使用 "show instance_name;" 命令。通过操作系统的任务管理器、Oracle Enterprise Manager 或检查环境变量 (Linux 上的 ORACLE_SID)。

Oracle安装失败如何卸载 Oracle安装失败如何卸载 Apr 11, 2025 pm 08:24 PM

Oracle 安装失败的卸载方法:关闭 Oracle 服务,删除 Oracle 程序文件和注册表项,卸载 Oracle 环境变量,重新启动计算机。若卸载失败,可使用 Oracle 通用卸载工具手动卸载。

oracle如何获取时间 oracle如何获取时间 Apr 11, 2025 pm 08:09 PM

在 Oracle 中获取时间有以下方法:CURRENT_TIMESTAMP:返回当前系统时间,精确到秒。SYSTIMESTAMP:比 CURRENT_TIMESTAMP 更准确,精确到纳秒。SYSDATE:返回当前系统日期,不含时间部分。TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'): 将当前系统日期和时间转换为特定格式。EXTRACT:从时间值中提取特定部分,如年份、月份或小时。

oracle awr报告怎么看 oracle awr报告怎么看 Apr 11, 2025 pm 09:45 PM

AWR 报告是显示数据库性能和活动快照的报告,解读步骤包括:识别活动快照的日期和时间。查看活动、资源消耗的概览。分析会话活动,找出会话类型、资源消耗和等待事件。查找潜在性能瓶颈,如缓慢的 SQL 语句、资源争用和 I/O 问题。查看等待事件,识别并解决它们以提高性能。分析闩锁和内存使用模式,以识别导致性能问题的内存问题。

oracle动态sql怎么创建 oracle动态sql怎么创建 Apr 12, 2025 am 06:06 AM

可以通过使用 Oracle 的动态 SQL 来根据运行时输入创建和执行 SQL 语句。步骤包括:准备一个空字符串变量来存储动态生成的 SQL 语句。使用 EXECUTE IMMEDIATE 或 PREPARE 语句编译和执行动态 SQL 语句。使用 bind 变量传递用户输入或其他动态值给动态 SQL。使用 EXECUTE IMMEDIATE 或 EXECUTE 执行动态 SQL 语句。

See all articles