SQL AND, OR 和 NOT 操作符
WHERE
子句可以与AND
,OR
和NOT
操作符相结合。
AND
和 OR
运算符用于根据一个以上的条件来过滤记录:
- 如果所有由
AND
分隔的条件为TRUE
,则AND
操作符显示一条记录。 - 如果由
OR
分隔的任何一个条件为 "TRUE",则OR
操作符显示一条记录。
如果条件为非真,NOT
操作符显示一条记录。
AND 语法
SELECT column1, column2, ...
FROM table_name
WHERE condition1 AND condition2 AND condition3 ...;
OR 语法
SELECT column1, column2, ...
FROM table_name
WHERE condition1 OR condition2 OR condition3 ...;
NOT 语法
SELECT column1, column2, ...
FROM table_name
WHERE NOT condition;
AND 示例
以下SQL语句从 "Customers"中选择所有字段,其中国家是 "Germany",城市是 "Berlin":
SELECT * FROM Customers
WHERE Country='Germany' AND City='Berlin';
输出:
OR 示例
以下SQL语句从城市为 "Berlin"或 "München"的 "Customers"中选择所有字段:
SELECT * FROM Customers
WHERE City='Berlin' OR City='München';
输出:
以下SQL语句从国家为 "Germany"或 "Spain"的 "Customers"中选择所有字段:
SELECT * FROM Customers
WHERE Country='Germany' OR Country='Spain' LIMIT 5;
输出:
NOT 示例
以下SQL语句从国家不是 "Germany"的 "Customers"中选择所有字段:
SELECT * FROM Customers
WHERE NOT Country='Germany' LIMIT 5;
输出:
结合AND、OR和NOT
你也可以结合 AND
、OR
和 NOT
运算符。
下面的SQL语句从 "Customers"中选择所有字段,其中国家是 "Germany",城市必须是 "Berlin"或 "München"(使用括号来形成复杂的表达式):
SELECT * FROM Customers
WHERE Country='Germany' AND (City='Berlin' OR City='München');
输出:
以下SQL语句从 "Customers"中选择所有字段,其中国家不是 "Germany"也不是 "USA":
SELECT * FROM Customers
WHERE NOT Country='Germany' AND NOT Country='USA' LIMIT 5;
输出: