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. 比较表达式
比较表达式用于比较两个值,并返回一个布尔值(
TRUE、FALSE 或 NULL)。常用的比较运算符有 =、<>、<、>、<=、>=。-- 等于
SELECT 5 = 5;
-- 不等于
SELECT 10 <> 15;
-- 小于
SELECT 3 < 7;
-- 大于
SELECT 12 > 8;
-- 小于等于
SELECT 6 <= 6;
-- 大于等于
SELECT 9 >= 4;
4. 逻辑表达式
逻辑表达式使用逻辑运算符(
AND、OR、NOT)来组合多个布尔表达式。-- AND 运算符
SELECT (5 > 3) AND (10 < 20);
-- OR 运算符
SELECT (5 < 3) OR (10 > 20);
-- NOT 运算符
SELECT NOT (5 = 5);
5. 字符串表达式
字符串表达式用于处理字符串,例如拼接、截取等。常用的字符串函数有
CONCAT、SUBSTRING、LENGTH 等。-- 字符串拼接
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 的查询、插入、更新和删除操作中都非常有用,可以帮助你灵活地处理和分析数据。
浙公网安备 33010602011771号