Oracle数据库作为全球领先的关系型数据库管理系统,提供了丰富的内置函数,这些函数涵盖了字符串操作、数学计算、日期时间处理、条件判断、序列生成、聚合统计等多个方面。掌握这些函数,可以帮助我们更高效地完成数据库操作。以下是Oracle数据库函数大全的详细介绍。

一、字符串函数

1.1 字符串连接函数

  • CONCAT(str1, str2, ..., strn):将多个字符串连接成一个字符串。
SELECT CONCAT('Hello', ' ', 'World') FROM dual;

1.2 字符串截取函数

  • SUBSTR(str, start, length):从字符串中截取指定长度的子字符串。
SELECT SUBSTR('Oracle Database', 1, 10) FROM dual;

1.3 字符串替换函数

  • REPLACE(str, old_str, new_str):将字符串中的旧字符串替换为新字符串。
SELECT REPLACE('Oracle Database', 'Database', 'DB') FROM dual;

1.4 字符串大小写转换函数

  • UPPER(str):将字符串转换为大写。
  • LOWER(str):将字符串转换为小写。
  • INITCAP(str):将字符串的首字母转换为大写。
SELECT UPPER('oracle database'), LOWER('ORACLE DATABASE'), INITCAP('oracle database') FROM dual;

二、数学函数

2.1 四舍五入函数

  • ROUND(num, dec):将数字四舍五入到指定的小数位数。
SELECT ROUND(123.456, 2) FROM dual;

2.2 数值截取函数

  • FLOOR(num):向下取整。
  • CEIL(num):向上取整。
SELECT FLOOR(123.456), CEIL(123.456) FROM dual;

2.3 取余函数

  • MOD(num1, num2):返回两个数的余数。
SELECT MOD(10, 3) FROM dual;

三、日期时间函数

3.1 日期格式化函数

  • TO_CHAR(date, 'format'):将日期转换为字符串,并按照指定的格式进行格式化。
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD') FROM dual;

3.2 日期计算函数

  • ADD_MONTHS(date, num):在指定日期上添加或减去指定月份数。
  • MONTHS_BETWEEN(date1, date2):计算两个日期之间的月数差。
SELECT ADD_MONTHS(SYSDATE, 3), MONTHS_BETWEEN(SYSDATE, '01-JAN-2020') FROM dual;

3.3 日期比较函数

  • SYSDATE:获取当前日期和时间。
  • TRUNC(date, 'level'):将日期截断到指定的精度。
SELECT SYSDATE, TRUNC(SYSDATE, 'DD') FROM dual;

四、聚合函数

4.1 统计记录数

  • COUNT(column):计算指定列的记录数。
SELECT COUNT(*) FROM employees;

4.2 求和函数

  • SUM(column):计算指定列的总和。
SELECT SUM(salary) FROM employees;

4.3 最大值查询

  • MAX(column):查询指定列的最大值。
SELECT MAX(salary) FROM employees;

4.4 最小值查询

  • MIN(column):查询指定列的最小值。
SELECT MIN(salary) FROM employees;

4.5 查询平均值

  • AVG(column):查询指定列的平均值。
SELECT AVG(salary) FROM employees;

五、条件判断函数

5.1 NVL函数

  • NVL(value1, value2):如果value1为NULL,则返回value2,否则返回value1。
SELECT NVL(null, 'default') FROM dual;

5.2 CASE WHEN THEN函数

  • CASE when condition1 then result1 when condition2 then result2 ... else resultn end:根据条件返回不同的结果。
SELECT CASE 
  WHEN salary > 10000 THEN 'High'
  WHEN salary BETWEEN 5000 AND 10000 THEN 'Medium'
  ELSE 'Low'
END AS salary_level
FROM employees;

5.3 DECODE函数

  • DECODE(value1, value2, result1, value3, result2, ..., default):根据条件返回不同的结果。
SELECT DECODE(salary, 10000, 'High', 5000, 'Medium', 'Low') AS salary_level
FROM employees;

通过以上介绍,相信你已经对Oracle数据库函数有了更深入的了解。熟练掌握这些函数,将有助于你在数据库操作中更加高效地完成任务。