PostgreSQL 表达式详解

在 PostgreSQL 中,表达式是由常量、变量、函数、运算符和括号组合而成的语句,用于计算值。下面将从不同方面详细介绍 PostgreSQL 表达式。

1. 常量表达式

常量表达式是最简单的表达式类型,它仅包含常量值。这些常量可以是数字、字符串、日期等。
 
-- 数字常量
SELECT 10;
-- 字符串常量
SELECT 'Hello, PostgreSQL';
-- 日期常量
SELECT DATE '2024-01-01';

2. 算术表达式

算术表达式使用算术运算符(如 +-*/%)来执行基本的数学运算。
 
-- 加法
SELECT 5 + 3;
-- 减法
SELECT 10 - 2;
-- 乘法
SELECT 4 * 6;
-- 除法
SELECT 15 / 3;
-- 取模
SELECT 17 % 5;

3. 比较表达式

比较表达式用于比较两个值,并返回一个布尔值(TRUEFALSE 或 NULL)。常用的比较运算符有 =<><><=>=
 
-- 等于
SELECT 5 = 5;
-- 不等于
SELECT 10 <> 15;
-- 小于
SELECT 3 < 7;
-- 大于
SELECT 12 > 8;
-- 小于等于
SELECT 6 <= 6;
-- 大于等于
SELECT 9 >= 4;

4. 逻辑表达式

逻辑表达式使用逻辑运算符(ANDORNOT)来组合多个布尔表达式。
 
-- AND 运算符
SELECT (5 > 3) AND (10 < 20);
-- OR 运算符
SELECT (5 < 3) OR (10 > 20);
-- NOT 运算符
SELECT NOT (5 = 5);

5. 字符串表达式

字符串表达式用于处理字符串,例如拼接、截取等。常用的字符串函数有 CONCATSUBSTRINGLENGTH 等。
-- 字符串拼接
SELECT CONCAT('Hello', ' ', 'World');
-- 字符串截取
SELECT SUBSTRING('PostgreSQL' FROM 1 FOR 4);
-- 字符串长度
SELECT LENGTH('Database');

6. 日期和时间表达式


日期和时间表达式用于处理日期和时间数据。可以进行日期和时间的加减、比较等操作。
-- 日期加法
SELECT DATE '2024-01-01' + INTERVAL '1 day';
-- 日期减法
SELECT DATE '2024-01-10' - DATE '2024-01-01';
-- 日期比较
SELECT DATE '2024-01-01' < DATE '2024-02-01';

7. 函数表达式

函数表达式调用 PostgreSQL 内置函数或用户自定义函数来计算值。例如,AVG 用于计算平均值,SUM 用于求和。
 
-- 创建示例表
CREATE TABLE sales (
    product_id INT,
    amount DECIMAL(10, 2)
);

-- 插入示例数据
INSERT INTO sales (product_id, amount) VALUES (1, 100.00), (2, 200.00), (3, 300.00);

-- 计算平均值
SELECT AVG(amount) FROM sales;
-- 计算总和
SELECT SUM(amount) FROM sales;

8. 子查询表达式

子查询表达式是嵌套在其他查询中的查询。它可以用于过滤数据、计算中间结果等。
-- 创建示例表
CREATE TABLE employees (
    employee_id INT,
    name VARCHAR(100),
    department_id INT
);

CREATE TABLE departments (
    department_id INT,
    department_name VARCHAR(100)
);

-- 插入示例数据
INSERT INTO departments (department_id, department_name) VALUES (1, 'HR'), (2, 'IT');
INSERT INTO employees (employee_id, name, department_id) VALUES (1, 'Alice', 1), (2, 'Bob', 2);

-- 使用子查询过滤数据
SELECT * FROM employees
WHERE department_id IN (SELECT department_id FROM departments WHERE department_name = 'IT');

9. 条件表达式

条件表达式根据条件返回不同的值。常用的条件表达式有 CASE 语句。
 
-- 创建示例表
CREATE TABLE products (
    product_id INT,
    price DECIMAL(10, 2)
);

-- 插入示例数据
INSERT INTO products (product_id, price) VALUES (1, 50.00), (2, 150.00), (3, 250.00);

-- 使用 CASE 语句进行条件判断
SELECT 
    product_id,
    price,
    CASE 
        WHEN price < 100 THEN 'Low Price'
        WHEN price BETWEEN 100 AND 200 THEN 'Medium Price'
        ELSE 'High Price'
    END AS price_category
FROM products;

这些表达式在 PostgreSQL 的查询、插入、更新和删除操作中都非常有用,可以帮助你灵活地处理和分析数据。

posted on 2025-03-20 08:51  数据与人文  阅读(41)  评论(0)    收藏  举报