PostgreSQL 数据库常用函数的详细说明及示例

套图传送门

PostgreSQL 是一个功能强大的开源关系型数据库管理系统,提供了丰富多样的函数,以下为你分类介绍各类常见函数的详细说明、用法及示例:

字符串函数

1. CONCAT()

  • 说明:用于连接多个字符串。
  • 用法CONCAT(string1, string2 [, ...])
  • 示例

收起

sql

SELECT CONCAT('Hello', ' ', 'World');
-- 输出: Hello World

2. SUBSTRING()

  • 说明:从字符串中提取子字符串。
  • 用法SUBSTRING(string FROM start [FOR length])
  • 示例

收起

sql

SELECT SUBSTRING('Hello World' FROM 7 FOR 5);
-- 输出: World

3. UPPER() 和 LOWER()

  • 说明UPPER() 将字符串转换为大写,LOWER() 将字符串转换为小写。
  • 用法
    • UPPER(string)
    • LOWER(string)
  • 示例

收起

sql

SELECT UPPER('hello');
-- 输出: HELLO
SELECT LOWER('WORLD');
-- 输出: world

4. TRIM()

  • 说明:去除字符串两端的空格或指定字符。
  • 用法TRIM([leading | trailing | both] [characters] FROM string)
  • 示例

收起

sql

SELECT TRIM('   Hello   ');
-- 输出: Hello
SELECT TRIM(both 'x' FROM 'xxxHelloxxx');
-- 输出: Hello

数值函数

1. ABS()

  • 说明:返回一个数的绝对值。
  • 用法ABS(number)
  • 示例

收起

sql

SELECT ABS(-10);
-- 输出: 10

2. ROUND()

  • 说明:对数值进行四舍五入。
  • 用法ROUND(number [, decimal_places])
  • 示例

收起

sql

SELECT ROUND(3.14159, 2);
-- 输出: 3.14

3. CEILING() 和 FLOOR()

  • 说明CEILING() 返回大于或等于给定数值的最小整数,FLOOR() 返回小于或等于给定数值的最大整数。
  • 用法
    • CEILING(number)
    • FLOOR(number)
  • 示例

收起

sql

SELECT CEILING(3.1);
-- 输出: 4
SELECT FLOOR(3.9);
-- 输出: 3

日期和时间函数

1. CURRENT_DATECURRENT_TIME 和 CURRENT_TIMESTAMP

  • 说明:分别返回当前日期、当前时间和当前日期时间。
  • 用法:直接使用这些关键字。
  • 示例

收起

sql

SELECT CURRENT_DATE;
-- 输出当前日期,例如: 2025-02-20
SELECT CURRENT_TIME;
-- 输出当前时间,例如: 12:34:56
SELECT CURRENT_TIMESTAMP;
-- 输出当前日期时间,例如: 2025-02-20 12:34:56

2. EXTRACT()

  • 说明:从日期或时间值中提取特定部分,如年、月、日等。
  • 用法EXTRACT(field FROM source)
  • 示例

收起

sql

SELECT EXTRACT(YEAR FROM CURRENT_TIMESTAMP);
-- 输出当前年份,例如: 2025

3. DATE_TRUNC()

  • 说明:将日期或时间值截断到指定的精度。
  • 用法DATE_TRUNC('field', source)
  • 示例

收起

sql

SELECT DATE_TRUNC('month', CURRENT_TIMESTAMP);
-- 输出当前日期所在月的第一天的日期时间,例如: 2025-02-01 00:00:00

聚合函数

1. SUM()

  • 说明:计算指定列的总和。
  • 用法SUM(column)
  • 示例:假设有一个 sales 表,包含 amount 列。

收起

sql

SELECT SUM(amount) FROM sales;

2. AVG()

  • 说明:计算指定列的平均值。
  • 用法AVG(column)
  • 示例

收起

sql

SELECT AVG(amount) FROM sales;

3. COUNT()

  • 说明:返回指定列中的行数或非空值的数量。
  • 用法
    • COUNT(*):返回表中的总行数。
    • COUNT(column):返回指定列中非空值的数量。
  • 示例

收起

sql

SELECT COUNT(*) FROM sales;
-- 返回 sales 表的总行数
SELECT COUNT(amount) FROM sales;
-- 返回 amount 列中非空值的数量

4. MAX() 和 MIN()

  • 说明MAX() 返回指定列中的最大值,MIN() 返回指定列中的最小值。
  • 用法
    • MAX(column)
    • MIN(column)
  • 示例

收起

sql

SELECT MAX(amount) FROM sales;
-- 返回 amount 列的最大值
SELECT MIN(amount) FROM sales;
-- 返回 amount 列的最小值

条件函数

1. CASE

  • 说明:根据条件执行不同的操作。
  • 用法

收起

sql

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ...
    ELSE default_result
END
  • 示例:假设有一个 grades 表,包含 score 列。

收起

sql

SELECT 
    score,
    CASE
        WHEN score >= 90 THEN 'A'
        WHEN score >= 80 THEN 'B'
        WHEN score >= 70 THEN 'C'
        WHEN score >= 60 THEN 'D'
        ELSE 'F'
    END AS grade
FROM grades;

窗口函数

1. ROW_NUMBER()

  • 说明:为结果集中的每一行分配一个唯一的行号。
  • 用法ROW_NUMBER() OVER (ORDER BY column)
  • 示例:假设有一个 employees 表,包含 employee_id 和 salary 列。

收起

sql

SELECT 
    employee_id,
    salary,
    ROW_NUMBER() OVER (ORDER BY salary DESC) AS row_num
FROM employees;

以上只是 PostgreSQL 中部分常见函数的介绍,PostgreSQL 还有许多其他类型的函数,如正则表达式函数、JSON 函数等,你可以参考 PostgreSQL 官方文档获取更详细的信息。分享

套图传送门
THE END
喜欢就支持一下吧
点赞21 分享