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'开头的客户,而不考虑国家值。

相关推荐
卜锦元1 分钟前
Golang后端性能优化手册(第四章:异步处理与消息队列)
开发语言·后端·docker·容器·性能优化·golang·团队开发
lsx2024062 分钟前
HTML 脚本:深入解析与实际应用
开发语言
TG:@yunlaoda360 云老大2 分钟前
华为云国际站代理商IoTDA的设备生命周期管理功能如何保障数据安全?
服务器·数据库·华为云
lkbhua莱克瓦243 分钟前
基础-SQL的通用语法、分类以及DDL
开发语言·数据库·笔记·sql·mysql·ddl
十五年专注C++开发3 分钟前
librf: 一款基于 C++11/14/17 标准实现的轻量级无栈协程库
开发语言·c++·分布式·异步io
TTGGGFF6 分钟前
MATLAB仿真:从理论到实操的控制系统建模实验
开发语言·数学建模·matlab
趁月色小酌***7 分钟前
JAVA 知识点总结3
java·开发语言·python
Jack Sparrow丶8 分钟前
Oracle外键查询
数据库·oracle
中年程序员一枚10 分钟前
php实现调用ldap服务器,实现轻量级目录访问协议(Lightweight Directory Access Protocol,LDAP)
服务器·开发语言·php
Smile丶凉轩10 分钟前
C++实现主从Reactor模型实现高并发服务器面试题总结
服务器·开发语言·c++