SQL NOT 运算符
NOT 运算符
NOT 运算符在 WHERE 子句中使用,用于返回所有不匹配指定条件的记录。它将条件的真值从真反转为假,反之亦然。
以下 SQL 语句会选择所有不是来自西班牙的客户:
实例
仅选择非西班牙的客户:
SELECT * FROM Customers WHERE NOT Country = 'Spain';
在上面的例子中,NOT 运算符与 = 运算符结合使用。
NOT 运算符也与其他运算符结合使用以排除数据,例如:
NOT LIKENOT BETWEENNOT INIS NOT NULLNOT EXISTS
语法
SELECT column1, column2, ... FROM table_name WHERE NOT condition;
演示数据库
以下是实例中使用的 Customers 表的片段:
| CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
|---|---|---|---|---|---|---|
| 1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
| 2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
| 3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
| 4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
| 5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
NOT LIKE 运算符
NOT LIKE 运算符在 WHERE 子句中使用,用于排除匹配指定字符模式的行。
有两个通配符经常与 NOT LIKE 运算符结合使用:
- 百分号
%- 代表零个、一个或多个字符 - 下划线
_- 代表单个字符
以下 SQL 语句会选择所有不以字母 "A" 开头的客户:
实例
选择不以字母 'A' 开头的客户:
SELECT * FROM Customers WHERE CustomerName NOT LIKE 'A%';
NOT BETWEEN 运算符
NOT BETWEEN 运算符在 WHERE 子句中使用,用于选择值在指定包含范围之外的行。
NOT BETWEEN 运算符可用于数值、文本或日期值。
以下 SQL 语句会选择所有 CustomerID 不在 10 到 60 之间的客户:
实例
选择 customerID 不在 10 到 60 之间的客户:
SELECT * FROM Customers WHERE CustomerID NOT BETWEEN 10 AND 60;
NOT IN 运算符
NOT IN 运算符在 WHERE 子句中使用,用于排除匹配指定列表或子查询结果集中任何值的行。
以下 SQL 语句会选择所有国家不在 "Paris" 或 "London" 的客户:
实例
选择非巴黎或伦敦的客户:
SELECT * FROM Customers
WHERE City NOT IN ('Paris', 'London');
不大于
在 SQL 中,"不大于"条件通常用标准的小于等于 (<=) 运算符表示。
以下 SQL 语句会选择所有 CustomerID 不大于 50 的客户:
实例
选择 CustomerId 不大于 50 的客户:
SELECT * FROM Customers WHERE NOT CustomerID > 50;
或者等价地:
SELECT * FROM Customers WHERE CustomerID <= 50;
提示:有一个不大于操作符:!>,它会给您相同的结果。
不小于
在 SQL 中,"不小于"条件通常用标准的大于等于 (>=) 运算符表示。
以下 SQL 语句会选择所有 CustomerID 不小于 50 的客户:
实例
选择 CustomerID 不小于 50 的客户:
SELECT * FROM Customers WHERE NOT CustomerId < 50;
或者等价地:
SELECT * FROM Customers WHERE CustomerId >= 50;
提示:有一个不小于操作符:!<,它会给您相同的结果。