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

发布时间:2023年12月20日

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. 1.?选择所有来自西班牙并以字母'G'开头的客户:

SELECT?*
FROM?Customers
WHERE?Country?=?'Spain'?AND?CustomerName?LIKE?'G%';
  1. 1.?选择所有来自西班牙,城市为'Berlin',且邮政编码大于12000的客户:

SELECT?*
FROM?Customers
WHERE?Country?=?'Germany'
AND?City?=?'Berlin'
AND?PostalCode?>?12000;
  1. 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. 1.?选择所有来自德国或西班牙的客户:

SELECT?*
FROM?Customers
WHERE?Country?=?'Germany'?OR?Country?=?'Spain';
  1. 1.?选择所有城市为'Berlin',或CustomerName以字母'G'开头,或Country为'Norway'的客户:

SELECT?*
FROM?Customers
WHERE?City?=?'Berlin'?OR?CustomerName?LIKE?'G%'?OR?Country?=?'Norway';
  1. 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. 1.?选择所有来自德国或西班牙的客户:

SELECT?*
FROM?Customers
WHERE?Country?=?'Germany'?OR?Country?=?'Spain';
  1. 1.?选择所有城市为'Berlin',或CustomerName以字母'G'开头,或Country为'Norway'的客户:

SELECT?*
FROM?Customers
WHERE?City?=?'Berlin'?OR?CustomerName?LIKE?'G%'?OR?Country?=?'Norway';
  1. 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'开头的客户,而不考虑国家值。

文章来源:https://blog.csdn.net/qq_59831338/article/details/135015567
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。