oracle的函数有哪些

1. 概述

Oracle数据库提供了众多函数(Function),这些函数可以在SQL语句中起到非常重要的作用,可以帮助我们更加高效地处理数据。函数按照其功能分类,可以分成以下几类:

1.1 字符串函数

字符串函数是用于处理字符串类型的函数,可以方便地完成字符串的拼接、去空格、转大写、转小写等操作。Oracle支持的字符串函数如下:

CONCAT:连接字符串

LENGTH:求字符串长度

TRIM:去除字符串中的空格

UPPER:将字符串转换成大写形式

LOWER:将字符串转换成小写形式

SUBSTR:取子串

1.2 数值函数

数值函数是用于处理数值类型的函数,可以方便地完成数值之间的加、减、乘、除等操作。Oracle支持的数值函数如下:

ABS:求绝对值

CEIL:向上取整

FLOOR:向下取整

MOD:取模

POWER:求幂

ROUND:四舍五入

TRUNC:截断

1.3 日期函数

日期函数是用于处理日期类型的函数,可以方便地完成日期之间的加、减、比较等操作。Oracle支持的日期函数如下:

ADD_MONTHS:增加月份

MONTHS_BETWEEN:计算月份差

LAST_DAY:取得月份最后一天

NEXT_DAY:计算离指定日期最近的星期几

TO_CHAR:日期格式化

TO_DATE:将字符串转换成日期类型

1.4 转换函数

转换函数是用于将一种类型的数据转换成另一种类型的数据,可以方便地完成数据类型的转换。Oracle支持的转换函数如下:

CAST:将一种数据类型转换成另一种数据类型

TO_CHAR:将数值、日期等转换成字符类型

TO_NUMBER:将字符型数据转换成数值型数据

TO_DATE:将字符型数据转换成日期型数据

1.5 聚合函数

聚合函数是用于统计一组数据的函数,可以方便地完成最大值、最小值、平均值、总和等操作。Oracle支持的聚合函数如下:

AVG:求平均值

COUNT:求总记录数

MAX:求最大值

MIN:求最小值

SUM:求总和

2. 示例

以下是一些示例,展示了如何使用Oracle函数来操作数据。

2.1 字符串函数示例

-- 将两个字符串拼接在一起

SELECT CONCAT('Hello, ', 'world!') FROM dual;

-- 求字符串的长度

SELECT LENGTH('Hello, world!') FROM dual;

-- 去除字符串中的空格

SELECT TRIM(' Hello, world! ') FROM dual;

-- 将字符串转换成大写形式

SELECT UPPER('Hello, world!') FROM dual;

-- 将字符串转换成小写形式

SELECT LOWER('Hello, world!') FROM dual;

-- 取字符串的子串

SELECT SUBSTR('Hello, world!', 1, 5) FROM dual;

2.2 数值函数示例

-- 求绝对值

SELECT ABS(-10) FROM dual;

-- 向上取整

SELECT CEIL(3.1415926) FROM dual;

-- 向下取整

SELECT FLOOR(3.1415926) FROM dual;

-- 求模

SELECT MOD(16, 5) FROM dual;

-- 求幂

SELECT POWER(2, 3) FROM dual;

-- 四舍五入

SELECT ROUND(3.1415926, 2) FROM dual;

-- 截断

SELECT TRUNC(3.1415926, 2) FROM dual;

2.3 日期函数示例

-- 增加月份

SELECT ADD_MONTHS(SYSDATE, 1) FROM dual;

-- 计算月份差

SELECT MONTHS_BETWEEN(SYSDATE, TO_DATE('2021-01-01', 'YYYY-MM-DD')) FROM dual;

-- 取得月份最后一天

SELECT LAST_DAY(SYSDATE) FROM dual;

-- 计算离指定日期最近的星期几

SELECT NEXT_DAY(SYSDATE, '星期五') FROM dual;

-- 日期格式化

SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') FROM dual;

-- 将字符串转换成日期类型

SELECT TO_DATE('2021-08-08', 'YYYY-MM-DD') FROM dual;

2.4 转换函数示例

-- 将数值型数据转换成字符型数据

SELECT TO_CHAR(12345) FROM dual;

-- 将字符型数据转换成数值型数据

SELECT TO_NUMBER('12345') FROM dual;

-- 将字符型数据转换成日期型数据

SELECT TO_DATE('2021-08-08', 'YYYY-MM-DD') FROM dual;

2.5 聚合函数示例

假设有一个学生表,包含了学生的姓名、性别和成绩信息。

CREATE TABLE student

(

name VARCHAR2(20),

sex VARCHAR2(2),

score NUMBER

);

INSERT INTO student VALUES ('张三', '男', 80);

INSERT INTO student VALUES ('李四', '女', 90);

INSERT INTO student VALUES ('王五', '男', 70);

INSERT INTO student VALUES ('赵六', '女', 85);

INSERT INTO student VALUES ('钱七', '男', 85);

统计学生表中的记录数:

SELECT COUNT(*) FROM student;

查询学生表中成绩的平均值、最大值、最小值和总和:

SELECT AVG(score), MAX(score), MIN(score), SUM(score) FROM student;

3. 总结

本文介绍了Oracle数据库中支持的各种函数类型及其使用方法,并给出了一些实例,希望对大家有所帮助。

数据库标签