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,或者扫描下方二维码,关注公众号,即可获取最新文章。
看完如果觉得有帮助,欢迎点赞、收藏和关注

SQL 的 AND、OR 和 NOT 运算符:条件筛选的高级用法的更多相关文章
- 逍遥自在学C语言 位运算符 "|" 的5种高级用法
前言 在上一篇文章中,我们介绍了&运算符的高级用法,本篇文章,我们将介绍| 运算符的一些高级用法. 一.人物简介 第一位闪亮登场,有请今后会一直教我们C语言的老师 -- 自在. 第二位上场的是 ...
- 逍遥自在学C语言 | 位运算符&的高级用法
前言 在上一篇文章中,我们介绍了&运算符的基础用法,本篇文章,我们将介绍& 运算符的一些高级用法. 一.人物简介 第一位闪亮登场,有请今后会一直教我们C语言的老师 -- 自在. 第二位 ...
- 逍遥自在学C语言 | 位运算符^的高级用法
前言 在上一篇文章中,我们介绍了|运算符的高级用法,本篇文章,我们将介绍^ 运算符的一些高级用法. 一.人物简介 第一位闪亮登场,有请今后会一直教我们C语言的老师 -- 自在. 第二位上场的是和我们一 ...
- SQL Server优化技巧——如何避免查询条件OR引起的性能问题
之前写过一篇博客"SQL SERVER中关于OR会导致索引扫描或全表扫描的浅析",里面介绍了OR可能会引起全表扫描或索引扫描的各种案例,以及如何优化查询条件中含有OR的SQL语句的 ...
- SQL Server优化技巧——如何避免查询条件OR引起的性能问题
原文:SQL Server优化技巧--如何避免查询条件OR引起的性能问题 之前写过一篇博客"SQL SERVER中关于OR会导致索引扫描或全表扫描的浅析",里面介绍了OR可能会引起 ...
- Dart学习笔记-运算符-条件表达式-类型转换
Dart学习笔记-运算符-条件表达式-类型转换 一.运算符 1.算术运算符 + (加)- (减)* (乘)/ (除)~/ (取整) %(取余) 2.关系运算符 == (等等) != (不等) > ...
- SQL[连载3]sql的一些高级用法
SQL[连载3]sql的一些高级用法 SQL 高级教程 SQL SELECT TOP SQL SELECT TOP 子句 SELECT TOP 子句用于规定要返回的记录的数目. SELECT TOP ...
- SQL中的left outer join,inner join,right outer join用法详解
这两天,在研究SQL语法中的inner join多表查询语法的用法,通过学习,发现一个SQL命令,竟然涉及到很多线性代数方面的知识,现将这些知识系统地记录如下: 使用关系代数合并数据1 关系代数合并数 ...
- 织梦CMS实现多条件筛选功能
用织梦实现筛选的功能,其实主要就是运用到了织梦的高级搜索功能,然后用ajax去post替换掉本来的结果就可以了. 其实筛选的话,主要有两个问题需要解决,一个是前台的筛选实现,一个是后台根据前台的点击, ...
- 求解:php商品条件筛选功能你是怎么做出来的?
求解:php商品条件筛选功能你是怎么做出来的? 2013-09-25 13:43 chenhang607 | 浏览 2756 次 资源共享 求思路或者方法,最好能有些代码 2013-09-25 14: ...
随机推荐
- 【LeetCode二叉树#15】二叉搜索树中的众数(递归中序遍历)
二叉搜索树中的众数 力扣题目链接(opens new window) 给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素). 假定 BST 有如下定义: 结点左子树 ...
- 【Azure 媒体服务】Azure Media Service Explorer 5.4.3.0 不能连接Media Service, 错误消息提示 BadRequest 和 Forbidden
问题描述 Azure Media Service Explorer 5.4.3.0 不能连接Media Service, 错误消息提示 BadRequest 和 Forbidden. 截图如下: Ba ...
- 【Azure 事件中心】如何查看事件中心的消息中具体报文内容呢?
问题描述 如何查看事件中心的消息中具体报文内容呢? 问题解答 正常情况是通过 Event Hub 的消费端获取消息进行处理查看,但是没有客户端代码的情况下,也可以通过微软的默认客户端Service B ...
- 亲测可用,ChatGPT 对话技巧
"Linux终端" "我希望你充当一个 linux 终端.我会输入命令,你会回复终端应该显示的内容.我希望你只回复一个唯一代码块内的终端输出,没有别的.不要写解释.除 ...
- 各类LLM模型分析比较
Large Language Model 模型对比 对于LLM模型框架主要如下3类[1]:1.autoregressive,2.autoencoding,3.encoder-decoder.主要对3类 ...
- Kconnect使用sftp windows自定义协议
终于有时间写点东西了,上次写东西已经是三个月之前了.自从出现了觉得一个月写一篇文章也没关系的想法之后就已经完全忘记有这回事儿了.一直觉得没有足够的时间,但是又想写出质量比较好的文章,所以就一直没有动笔 ...
- 新零售SaaS架构:订单履约系统的概念模型设计
订单履约系统的概念模型 订单:客户提交购物请求后,生成的买卖合同,通常包含客户信息.下单日期.所购买的商品或服务明细.价格.数量.收货地址以及支付方式等详细信息. 子订单:为了更高效地进行履约,大订单 ...
- PetriCrode ---Code Genreation for Colored Petri Nets Annotated with Pragmatics
1. PetriCode lets users generate code from CPN models annotated with pragmatics ,PetriCode allows t ...
- [VueJsDev] 基础知识 - AutoNumber VsCode 插件开发
[VueJsDev] 目录列表 https://www.cnblogs.com/pengchenggang/p/17037320.html AutoNumber VsCode插件开发 ::: deta ...
- vscode ctrl + 鼠标左键 点击 不进入组件,弹出一个框再点才进入的问题 目录名和vue文件名 开头不能大写 需从起生效
vscode ctrl + 鼠标左键 点击 不进入组件,弹出一个框再点才进入的问题 目录名和vue文件名 开头不能大写 需从起生效 就是这个,很讨厌,原来是开头不能大写字母的问题造成的. 小写字母就没 ...