当前位置: 首页 > news >正文

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. 结合使用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. 选择所有来自德国或西班牙的客户:
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. 结合使用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’开头的客户,而不考虑国家值。

最后

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

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

在这里插入图片描述

相关文章:

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

AND 运算符 SQL的AND运算符用于根据多个条件筛选记录,确保所有条件都为TRUE才返回记录。下面是AND运算符的基本语法: SELECT column1, column2, ... FROM table_name WHERE condition1 AND condition2 AND condition3 ...;column1, column2,等是您要选…...

11.5MyBatis(进阶)

一.${}和#{} 1.$是直接替换,#是预处理(使用占位符,替换成?).前者不安全(SQL注入), 后者安全. 2.$的使用场景: 如果传递的值是sql的关键字,只能使用$,不能使用#(asc,desc). 二.SQL注入 注意: 如果使用${}进行传参,一定要是可以穷举的,并且要进行安全性验证(例如排序,只能传a…...

CentOS挂载:解锁文件系统的力量

目录 引言1 挂载简介2 挂载本地分区3 挂载网络共享文件系统4 使用CIFS挂载结论 引言 在CentOS(一种基于Linux的操作系统)上挂载文件系统是一项常见而重要的任务,无论是将新的磁盘驱动器添加到系统,还是挂载网络共享资源&#xff…...

修身养性 - 阿纳托利: 健身指导

欢迎来到我的力量建设培训计划。这是一个介绍性视频,我会对训练项目、技巧和计划进行解释。我每天都在练习英语,但还不够好,所以下面使用了自动翻译。带来不便请原谅。 Welcome to my power building training program. Its an introduction video where I explained about …...

pip anaconda 设置 国内镜像源

一、pip设置国内(清华)镜像源和升级pip 使用下面的命令直接使用清华镜像源 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simplepython -m pip install --upgrade pip #备选 清华:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云&am…...

三江城115m²3室2厅2卫,现代简约不单是居所更是对生活的向往。福州中宅装饰,福州装修

【前言】 简洁有力,静默无声。 以简约精致的方式,展现现代都市生活; 经典不因潮流褪色,不为悦人只为悦己。 项目信息 项目名称 | 三江城 设计地址 | 福建福州 项目面积 | 115㎡ 项目户型 | 3室2厅 设计风格 | 现代简约 全…...

Hangfire.Pro 3.0 Crack

Hangfire.Pro 有限的存储支持 Hangfire Pro 是一组扩展包,允许使用批处理创建复杂的后台作业工作流程,并提供对超快速Redis作为作业存储的支持 请注意,仅在使用Hangfire.SqlServer、Hangfire.Pro.Redis或Hangfire.InMemory包作为作业存储时才…...

axios的使用,cancelToken取消请求

get请求 // 为给定 ID 的 user 创建请求 axios.get("/user?ID12345").then(function (response) {console.log(response);}).catch(function (error) {console.log(error);}); // 上面的请求也可以这样做 axios.get("/user", {params: {ID: 12345,},}).t…...

Rockdb简介

背景 最近在使用flink的过程中,由于要存储的状态很大,所以使用到了rockdb作为flink的后端存储,本文就来简单看下rockdb的架构设计 Rockdb设计 Rockdb采用了LSM的结构,它和hbase很像,不过严格的说,基于LS…...

【MyBatis】写了 10 年的代码,我最怕写 MyBatis 这些配置,现在有详解了

在使用 mybatis 过程中,当手写 JavaBean和XML 写的越来越多的时候,就越来越容意出错。这种重复性的工作,我们当然不希望做那么多。 还好, mybatis 为我们提供了强大的代码生成--MybatisGenerator。 通过简单的配置,我们…...

全球地表水数据集JRC Global Surface Water Mapping Layers v1.4

简介: JRC Global Surface Water Mapping Layers产品,是利用1984至2020年获取的landsat5、landsat7和landsat8的卫星影像,生成分辨率为30米的一套全球地表水覆盖的地图集。用户可以在全球尺度上按地区回溯某个时间上地表水分的变化情况。产品…...

Spring过滤器和拦截器的区别

📑前言 本文主要Spring过滤器和拦截器的区别的问题,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是青衿🥇 ☁️博客首页:CSDN主页放风讲故事 🌄每日一句&#x…...

HIS医疗项目

文章目录 医疗项目简介HIS项目介绍HIS架构解析HIS业务流程图HIS项目架构图 HIS组件解析——服务支撑 内存设置为4G或以上部署NGINX服务部署web安装JDK部署Elasticsearch安装ik中文分词器 部署rabbitmq部署MySQL服务安装MySQL服务建库、授权用户导入数据 部署Redis测试Redis 部署…...

eclipse启动无法找到类(自定义监听器)

一.报错 二.排查 1.首先检查代码是否有问题 本人报错是找不到监听器,故检查监听器的代码和web.xml文件是否有问题 public class DoorListener implements ServletContextListener 监听器是否继承并实现ServletContextListener中的方法。 web.xml中: &…...

Ubuntu openssh-server 离线安装

经常用到ubunutu 20.04容器,但是没有ssh比较难调试代码,离线环境下安装方法: 安装以下三个软件包,点击openssh下载链接可下载: 1、openssh-client_8.2p1-4_amd64.deb 2、openssh-sftp-server_8.2p1-4_amd64.deb 3、…...

servlet页面以及控制台输出中文乱码

如图: servlet首页面: servlet映射页面: 以及控制台输出打印信息: 以上页面均出现中文乱码 下面依次解决: 1、首页面中文乱码 检查你的html或者jsp页面中meta字符集 如图设置成utf-8 然后重启一下tomcat 2、servl…...

《向量数据库指南》——TruLens + Milvus Cloud构建RAG深入了解性能

深入了解性能 索引类型 本例中,索引类型对查询速度、token 用量或评估没有明显影响。这可能是因为数据量较小的关系。索引类型对较大语料库可能更重要。 Embedding 模型 text-embedding-ada-002 在准确性(0.72,平均 0.60)和答案相关度(0.82,平均0.62)上优于 MiniLM Embeddin…...

vscode代码上传到gitlab

打开终端 1.1输入一下内容提交到本地仓库 PS D:\VueProject2\mall-admin-web> git add . PS D:\VueProject2\mall-admin-web> git commit -m “商品优化,屏蔽不要内容” 1.2提交到远程仓库 master应该被替换为 Gitee 仓库中默认的分支名称 PS D:\VueProje…...

Spring Boot 项目的常用注解与依赖

工具类 lombok 依赖 可以快速的为类提供 get&#xff0c;set&#xff0c;toString 等方法 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional> </dependency> My…...

【C++11】多线程库 {thread线程库,mutex互斥锁库,condition_variable条件变量库,atomic原子操作库}

在C11之前&#xff0c;涉及到多线程问题&#xff0c;都是和平台相关的&#xff0c;比如windows和linux下各有自己的接口&#xff0c;这使得代码的可移植性比较差。 //在C98标准下&#xff0c;实现可移植的多线程程序 —— 条件编译 #ifdef _WIN32CreateThread(); //在windows系…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性&#xff0c;不同版本的Docker对内核版本有不同要求。例如&#xff0c;Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本&#xff0c;Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

关于easyexcel动态下拉选问题处理

前些日子突然碰到一个问题&#xff0c;说是客户的导入文件模版想支持部分导入内容的下拉选&#xff0c;于是我就找了easyexcel官网寻找解决方案&#xff0c;并没有找到合适的方案&#xff0c;没办法只能自己动手并分享出来&#xff0c;针对Java生成Excel下拉菜单时因选项过多导…...