首页 > 数据库 > 数据库开发技术 > 五种主流数据库:复合查询条件
| 复合查询条件 | MySQL | Oracle | SQL Server | PostgreSQL | SQLite |
|---|---|---|---|---|---|
| AND | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| OR | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| NOT | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| XOR | ✔️ | ❌ | ❌ | ❌ | ❌ |
SELECT emp_name, sex, salary
FROM employee
WHERE sex = '女'
AND salary > 10000;
emp_name|sex|salary
--------|---|--------
孙尚香 |女 |12000.00
| x AND y | TRUE | FALSE | NULL |
|---|---|---|---|
| TRUE | TRUE | FALSE | NULL |
| FALSE | FALSE | FALSE | FALSE |
| NULL | NULL | FALSE | NULL |
SELECT emp_id, emp_name
FROM employee
WHERE emp_name = '刘备' OR emp_name = '关羽' OR emp_name = '张飞';
| x OR y | TRUE | FALSE | NULL |
|---|---|---|---|
| TRUE | TRUE | TRUE | TRUE |
| FALSE | TRUE | FALSE | NULL |
| NULL | TRUE | NULL | NULL |
SELECT *
FROM employee
WHERE 1 = 0 AND 1/0 = 1;
SELECT *
FROM employee
WHERE 1 = 1 OR 1/0 = 1;
NOT >,查找不大于(小于或等于)指定值的数据。也可以使用 NOT=、NOT<等运算符。
NOT BETWEEN,查找位于指定范围之外的数据。
NOT IN,查找不在指定列表之中的数据。
NOT LIKE,查找不匹配某个模式的文本。
NOT expr IS NULL,查找 expr 不为空的数据,等价于 expr IS NOT NULL。
SELECT emp_name, bonus
FROM employee
WHERE NOT bonus BETWEEN 2000 AND 10000;
emp_name|bonus
--------|-------
蒋琬 |1500.00
| x | NOT x |
|---|---|
| TRUE | FALSE |
| FALSE | TRUE |
| NULL | NULL |
(x AND (NOT y)) OR ((NOT x) AND y)
SELECT 1 XOR 1, 1 XOR 0, 1 XOR NULL;
1 XOR 1|1 XOR 0|1 XOR NULL|
-------+-------+----------+
0| 1| |
SELECT emp_name, dept_id, bonus
FROM employee
WHERE dept_id = 2 OR dept_id = 3
AND bonus IS NOT NULL;
emp_name|dept_id|bonus
--------|-------|-------
诸葛亮 | 2|8000.00
黄忠 | 2|
魏延 | 2|
孙尚香 | 3|5000.00
SELECT emp_name, dept_id, bonus
FROM employee
WHERE (dept_id = 2 OR dept_id = 3) AND bonus IS NOT NULL;
emp_name|dept_id|bonus
--------|-------|-------
诸葛亮 | 2|8000.00
孙尚香 | 3|5000.00
原文作者:SQL编程思想;如有侵权,请联系管理员删除。