SQL NOT 运算符

NOT 运算符

NOT 运算符在 WHERE 子句中使用,用于返回所有不匹配指定条件的记录。它将条件的真值从真反转为假,反之亦然。

以下 SQL 语句会选择所有不是来自西班牙的客户:

实例

仅选择非西班牙的客户:

SELECT * FROM Customers
WHERE NOT Country = 'Spain';

亲自试一试

在上面的例子中,NOT 运算符与 = 运算符结合使用。

NOT 运算符也与其他运算符结合使用以排除数据,例如:

  • NOT LIKE
  • NOT BETWEEN
  • NOT IN
  • IS NOT NULL
  • NOT 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 不在 1060 之间的客户:

实例

选择 customerID 不在 1060 之间的客户:

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;

亲自试一试

提示:有一个不小于操作符:!<,它会给您相同的结果。