写点什么

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

作者:小万哥
  • 2023-11-19
    广东
  • 本文字数:1765 字

    阅读完需:约 6 分钟

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

AND 运算符

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


SELECT column1, column2, ...FROM table_nameWHERE condition1 AND condition2 AND condition3 ...;
复制代码


  • column1, column2,等是您要选择的列名称。

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

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

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


以下是一些示例:


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


SELECT *FROM CustomersWHERE Country = 'Spain' AND CustomerName LIKE 'G%';
复制代码


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


SELECT *FROM CustomersWHERE Country = 'Germany'AND City = 'Berlin'AND PostalCode > 12000;
复制代码


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


SELECT *FROM CustomersWHERE Country = 'Spain' AND (CustomerName LIKE 'G%' OR CustomerName LIKE 'R%');
复制代码


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


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


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

OR 运算符

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


SELECT column1, column2, ...FROM table_nameWHERE condition1 OR condition2 OR condition3 ...;
复制代码


  • column1, column2,等是您要选择的列名称。

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

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

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


以下是一些示例:


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


SELECT *FROM CustomersWHERE Country = 'Germany' OR Country = 'Spain';
复制代码


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


SELECT *FROM CustomersWHERE City = 'Berlin' OR CustomerName LIKE 'G%' OR Country = 'Norway';
复制代码


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


SELECT *FROM CustomersWHERE Country = 'Spain' AND (CustomerName LIKE 'G%' OR CustomerName LIKE 'R%');
复制代码


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


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


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

NOT 运算符

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


SELECT column1, column2, ...FROM table_nameWHERE condition1 OR condition2 OR condition3 ...;
复制代码


  • column1, column2,等是您要选择的列名称。

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

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

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


以下是一些示例:


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


SELECT *FROM CustomersWHERE Country = 'Germany' OR Country = 'Spain';
复制代码


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


SELECT *FROM CustomersWHERE City = 'Berlin' OR CustomerName LIKE 'G%' OR Country = 'Norway';
复制代码


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


SELECT *FROM CustomersWHERE Country = 'Spain' AND (CustomerName LIKE 'G%' OR CustomerName LIKE 'R%');
复制代码


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


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


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

最后

为了方便其他设备和平台的小伙伴观看往期文章:公众号搜索Let us Coding,或者扫描下方二维码,关注公众号,即可获取最新文章。


看完如果觉得有帮助,欢迎点赞、收藏关注



发布于: 刚刚阅读数: 6
用户头像

小万哥

关注

代码如人生 2023-02-09 加入

编程爱好者

评论

发布
暂无评论
SQL 的 AND、OR 和 NOT 运算符:条件筛选的高级用法_MySQL_小万哥_InfoQ写作社区