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
,否则记录不会被返回。
以下是一些示例:
- 选择所有来自西班牙并以字母'G'开头的客户:
SELECT *
FROM Customers
WHERE Country = 'Spain' AND CustomerName LIKE 'G%';
- 选择所有来自西班牙,城市为'Berlin',且邮政编码大于12000的客户:
SELECT *
FROM Customers
WHERE Country = 'Germany'
AND City = 'Berlin'
AND PostalCode > 12000;
- 选择所有以字母'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
,记录就会被返回。
以下是一些示例:
- 选择所有来自德国或西班牙的客户:
SELECT *
FROM Customers
WHERE Country = 'Germany' OR Country = 'Spain';
- 选择所有城市为'Berlin',或CustomerName以字母'G'开头,或Country为'Norway'的客户:
SELECT *
FROM Customers
WHERE City = 'Berlin' OR CustomerName LIKE 'G%' OR Country = 'Norway';
- 结合使用
AND
和OR
运算符,选择所有以'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
,记录就会被返回。
以下是一些示例:
- 选择所有来自德国或西班牙的客户:
SELECT *
FROM Customers
WHERE Country = 'Germany' OR Country = 'Spain';
- 选择所有城市为'Berlin',或CustomerName以字母'G'开头,或Country为'Norway'的客户:
SELECT *
FROM Customers
WHERE City = 'Berlin' OR CustomerName LIKE 'G%' OR Country = 'Norway';
- 结合使用
AND
和OR
运算符,选择所有以'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'开头的客户,而不考虑国家值。
最后
为了方便其他设备和平台的小伙伴观看往期文章:公众号搜索Let us Coding
,或者扫描下方二维码,关注公众号,即可获取最新文章。
看完如果觉得有帮助,欢迎点赞、收藏和关注