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.?结合使用
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
,记录就会被返回。
以下是一些示例:
-
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.?结合使用
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'开头的客户,而不考虑国家值。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!