SQL 表达式是构建查询语句的重要组成部分。通过使用表达式,你可以对数据执行各种操作,如数学运算、字符串处理和逻辑判断等。本章将详细介绍 SQL 中常用的表达式类型及其应用场景。
数学表达式
数学表达式用于执行基本的算术运算,包括加法、减法、乘法、除法以及取模运算。这些运算符可以应用于整数、浮点数或任何可以进行数值运算的数据类型。
加法运算
加法运算符 +
用于将两个数值相加。
SELECT number1 + number2 AS sum FROM table_name;
减法运算
减法运算符 -
用于从一个数值中减去另一个数值。
SELECT number1 - number2 AS difference FROM table_name;
乘法运算
乘法运算符 *
用于计算两个数值的乘积。
SELECT number1 * number2 AS product FROM table_name;
除法运算
除法运算符 /
用于计算两个数值的商。
SELECT number1 / number2 AS quotient FROM table_name;
取模运算
取模运算符 %
用于计算两个数值相除后的余数。
SELECT number1 % number2 AS remainder FROM table_name;
字符串表达式
字符串表达式主要用于处理文本数据,包括拼接、截取和替换等操作。
字符串拼接
字符串拼接通常使用 ||
或者 CONCAT()
函数来实现。
-- 使用 || 拼接字符串 SELECT first_name || ' ' || last_name AS full_name FROM employees; -- 使用 CONCAT() 函数拼接字符串 SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM employees;
字符串截取
字符串截取可以通过 SUBSTR()
或 SUBSTRING()
函数实现。
-- 使用 SUBSTR() 截取字符串 SELECT SUBSTR(email, 1, LOCATE('@', email) - 1) AS username FROM users; -- 使用 SUBSTRING() 截取字符串 SELECT SUBSTRING(email FROM 1 FOR LOCATE('@', email) - 1) AS username FROM users;
字符串替换
字符串替换功能可以通过 REPLACE()
函数实现。
SELECT REPLACE(address, 'Street', 'St.') AS new_address FROM customers;
逻辑表达式
逻辑表达式用于条件判断,常用于 WHERE
子句中过滤数据。
比较运算符
比较运算符包括等于 (=
)、不等于 (<>
或 !=
)、大于 (>
)、小于 (<
)、大于等于 (>=
) 和小于等于 (<=
)。
SELECT * FROM products WHERE price > 50 AND stock < 100;
逻辑运算符
逻辑运算符包括 AND
、OR
和 NOT
,用于组合多个条件。
-- 使用 AND 和 OR 结合条件 SELECT * FROM orders WHERE (status = 'shipped' AND order_date BETWEEN '2023-01-01' AND '2023-03-31') OR customer_id IN (101, 102); -- 使用 NOT 取反条件 SELECT * FROM users WHERE NOT email LIKE '%example.com';
条件表达式
条件表达式允许根据条件返回不同的值,最常用的是 CASE
表达式。
CASE 表达式
CASE
表达式类似于编程语言中的 if-else 语句,可以在查询结果集中动态生成列值。
-- -------------------- ---- ------- ------ ----------- ------------- ---- ---- ----- - -- ---- --- ---- ----- -- -- --- ----- -- --- ---- --- ---- --- --- -- ----------- ---- ---------
聚合函数表达式
聚合函数用于执行分组和汇总操作,如计数、求和、平均值等。
COUNT()
COUNT()
用于计算满足条件的行数。
SELECT COUNT(*) AS total_orders FROM orders WHERE status = 'completed';
SUM()
SUM()
用于计算某一列的总和。
SELECT SUM(quantity) AS total_quantity FROM order_items;
AVG()
AVG()
用于计算某一列的平均值。
SELECT AVG(price) AS average_price FROM products;
MIN() 和 MAX()
MIN()
和 MAX()
分别用于查找某一列的最小值和最大值。
SELECT MIN(price) AS lowest_price, MAX(price) AS highest_price FROM products;
以上就是 SQL 表达式的详细使用方法。通过熟练掌握这些表达式,你能够更灵活地构建复杂的 SQL 查询,从而更好地管理和分析数据。