SQL 的 AND、OR 和 NOT 运算符:条件筛选的高级用法

AND 运算符

SQL的AND运算符用于根据多个条件筛选记录,确保所有条件都为TRUE才返回记录。下面是AND运算符的基本语法:

复制代码
SELECT column1, column2, ...
FROM table_name
WHERE condition1 AND condition2 AND condition3 ...;
  • column1, column2,等是您要选择的列名称。

  • table_name是您从中选择记录的表的名称。

  • condition1, condition2,等是筛选记录的条件。

  • • 使用AND运算符,所有条件都必须为TRUE,否则记录不会被返回。

以下是一些示例:

    1. 选择所有来自西班牙并以字母'G'开头的客户:

    SELECT *
    FROM Customers
    WHERE Country = 'Spain' AND CustomerName LIKE 'G%';

    1. 选择所有来自西班牙,城市为'Berlin',且邮政编码大于12000的客户:

    SELECT *
    FROM Customers
    WHERE Country = 'Germany'
    AND City = 'Berlin'
    AND PostalCode > 12000;

    1. 选择所有以字母'G'或'R'开头的西班牙客户(使用括号确保正确的条件组合):

    SELECT *
    FROM Customers
    WHERE Country = 'Spain' AND (CustomerName LIKE 'G%' OR CustomerName LIKE 'R%');

如果不使用括号,查询可能会返回不希望的结果,因为AND运算符的优先级高于OR运算符。

复制代码
SELECT *
FROM Customers
WHERE Country = 'Spain' AND CustomerName LIKE 'G%' OR CustomerName LIKE 'R%';

上述查询将选择所有以'G'开头的西班牙客户,以及所有以'R'开头的客户,而不考虑国家值。

OR 运算符

SQL的OR运算符用于根据多个条件筛选记录,只要有一个条件为TRUE,就会返回记录。下面是OR运算符的基本语法:

复制代码
SELECT column1, column2, ...
FROM table_name
WHERE condition1 OR condition2 OR condition3 ...;
  • column1, column2,等是您要选择的列名称。

  • table_name是您从中选择记录的表的名称。

  • condition1, condition2,等是筛选记录的条件。

  • • 使用OR运算符,只要有一个条件为TRUE,记录就会被返回。

以下是一些示例:

    1. 选择所有来自德国或西班牙的客户:

    SELECT *
    FROM Customers
    WHERE Country = 'Germany' OR Country = 'Spain';

    1. 选择所有城市为'Berlin',或CustomerName以字母'G'开头,或Country为'Norway'的客户:

    SELECT *
    FROM Customers
    WHERE City = 'Berlin' OR CustomerName LIKE 'G%' OR Country = 'Norway';

    1. 结合使用ANDOR运算符,选择所有以'G'或'R'开头的西班牙客户(使用括号确保正确的条件组合):

    SELECT *
    FROM Customers
    WHERE Country = 'Spain' AND (CustomerName LIKE 'G%' OR CustomerName LIKE 'R%');

如果不使用括号,查询可能会返回不希望的结果,因为AND运算符的优先级高于OR运算符。

复制代码
SELECT *
FROM Customers
WHERE Country = 'Spain' AND CustomerName LIKE 'G%' OR CustomerName LIKE 'R%';

上述查询将选择所有以'G'开头的西班牙客户,以及所有以'R'开头的客户,而不考虑国家值。

NOT 运算符

SQL的OR运算符用于根据多个条件筛选记录,只要有一个条件为TRUE,就会返回记录。下面是OR运算符的基本语法:

复制代码
SELECT column1, column2, ...
FROM table_name
WHERE condition1 OR condition2 OR condition3 ...;
  • column1, column2,等是您要选择的列名称。

  • table_name是您从中选择记录的表的名称。

  • condition1, condition2,等是筛选记录的条件。

  • • 使用OR运算符,只要有一个条件为TRUE,记录就会被返回。

以下是一些示例:

    1. 选择所有来自德国或西班牙的客户:

    SELECT *
    FROM Customers
    WHERE Country = 'Germany' OR Country = 'Spain';

    1. 选择所有城市为'Berlin',或CustomerName以字母'G'开头,或Country为'Norway'的客户:

    SELECT *
    FROM Customers
    WHERE City = 'Berlin' OR CustomerName LIKE 'G%' OR Country = 'Norway';

    1. 结合使用ANDOR运算符,选择所有以'G'或'R'开头的西班牙客户(使用括号确保正确的条件组合):

    SELECT *
    FROM Customers
    WHERE Country = 'Spain' AND (CustomerName LIKE 'G%' OR CustomerName LIKE 'R%');

如果不使用括号,查询可能会返回不希望的结果,因为AND运算符的优先级高于OR运算符。

复制代码
SELECT *
FROM Customers
WHERE Country = 'Spain' AND CustomerName LIKE 'G%' OR CustomerName LIKE 'R%';

上述查询将选择所有以'G'开头的西班牙客户,以及所有以'R'开头的客户,而不考虑国家值。

相关推荐
rit84324991 分钟前
MATLAB中Teager能量算子提取与解调信号的实现
开发语言·matlab
开源技术4 分钟前
Python GeoPandas基础知识:地图、投影和空间连接
开发语言·ide·python
Cult Of7 分钟前
Alicea Wind的个人网站开发日志(2)
开发语言·python·vue
证榜样呀8 分钟前
2026 中专大数据技术专业可考的证书有哪些,必看!
大数据·sql
我找到地球的支点啦13 分钟前
通信扩展——扩频技术(超级详细,附带Matlab代码)
开发语言·matlab
Codefengfeng17 分钟前
数据安全知识点速通
sql
自不量力的A同学28 分钟前
Redisson 4.2.0 发布,官方推荐的 Redis 客户端
数据库·redis·缓存
Exquisite.30 分钟前
Mysql
数据库·mysql
微小冷32 分钟前
Rust异步编程详解
开发语言·rust·async·await·异步编程·tokio
A9better36 分钟前
C++——不一样的I/O工具与名称空间
开发语言·c++·学习