运算符
SQL 运算符用于在查询中做计算、比较和逻辑判断——和数学里的运算符类似,但多了 NULL 安全的考量。
算术运算符:+ - * / %(MOD 取余)
比较运算符:= <>/!= > < >= <= <=>(NULL 安全等于)
逻辑运算符:AND OR NOT XOR
其他运算符:BETWEEN ... AND ... IN (...) LIKE REGEXP IS NULL IS NOT NULL
以飞翔科技为例。运算符组合使用:
-- 算术 + 比较:查实发工资超过 20000 的员工
SELECT emp_name,
basic_salary + IFNULL(performance_bonus, 0) - IFNULL(social_security, 0) - IFNULL(personal_tax, 0) AS 实发
FROM employees
WHERE basic_salary + IFNULL(performance_bonus, 0) - IFNULL(social_security, 0) - IFNULL(personal_tax, 0) > 20000;
-- 逻辑组合:技术部且工资 > 8000 或管理部且工资 > 15000
SELECT emp_name, dept_code, basic_salary
FROM employees
WHERE (dept_code = 2 AND basic_salary > 8000)
OR (dept_code = 1 AND basic_salary > 15000);
-- 取余:查工号为偶数的员工
SELECT emp_id, emp_name FROM employees
WHERE emp_id % 2 = 0;
注意 NULL 参与运算的特殊性:任何算术运算遇到 NULL 结果都是 NULL,任何比较运算遇到 NULL 结果都是 UNKNOWN。这就是为什么需要 IFNULL、COALESCE 和 <=> 这些专门处理 NULL 的工具。