news 2026/7/22 2:01:18

01_AND组合查询_把既要又要翻译成SQL

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
01_AND组合查询_把既要又要翻译成SQL

SQL 零基础(一):AND 组合查询——把"既要、又要、还要"翻译成 SQL

系列说明:本系列用一个真实的"奥运会管理系统"数据库做例子,Athlete 表里存着 1000 名运动员。所有语句都可以跟着敲,跟着跑。

从一个真实需求说起

想象你是奥组委的工作人员,领导走过来说:

“帮我查一下,咱们系统里中国的、女性运动员都有谁?”

注意,领导一口气提了两个要求:国家是中国、性别是女。少满足一个都不行——中国男运动员不要,外国女运动员也不要。

这种"既要、又要"的查询,就是组合查询,SQL 里靠一个单词解决:AND

先复习:单条件查询

只有一个要求时,你已经会写了:

SELECT*FROMAthleteWHERECountryCode='CN'

WHERE 后面那坨叫条件,数据库会拿着它逐行检查:满足的留下,不满足的丢掉。

AND:把条件串起来

两个要求?直接用 AND 把两个条件起来:

SELECT*FROMAthleteWHERECountryCode='CN'ANDGender='F'

数据库检查每一行时,现在要连过两关:

运动员CountryCode = ‘CN’?Gender = ‘F’?结果
张三(中国男)淘汰
Mary(美国女)不用看了淘汰
李四(中国女)留下

AND 的规则一句话:所有条件全部为真,这一行才能留下。一关不过,直接出局。

三个、四个条件?继续串!

回到开头的问题:如果领导又补了一句"要练射击的(SportID = 35)、姓名里带 an 的"呢?

有几个要求,就串几个 AND,想串多长串多长:

SELECT*FROMAthleteWHERECountryCode='CN'ANDGender='F'ANDSportID=35ANDFirstNameLIKE'%an%'

(那个LIKE '%an%'是模糊匹配,意为"名字里含 an"——它的完整用法和一个大小写暗坑,见系列第五篇。)

这里有个新手常见疑问:四个条件是不是要用三个 AND?对!AND 是"连接词",N 个条件之间有 N−1 个缝隙,每个缝隙塞一个 AND。就像糖葫芦:4 颗山楂,3 段签子连接。

排版小技巧:条件多的时候,每个条件占一行、AND 顶头写(如上),一眼就能数清有几个条件。挤在一行里很容易漏写一个 AND,报错了都找不到在哪。

AND 的兄弟:OR

AND 是"全都要",OR 是"满足一个就行":

-- 中国或者日本的运动员(两国都要)SELECT*FROMAthleteWHERECountryCode='CN'ORCountryCode='JP'

⚠️大坑预警:AND 和 OR 混用时,必须加括号!

-- 需求:中国或日本的"女"运动员-- ❌ 错误写法(会查出所有中国人+日本女性,细品)WHERECountryCode='CN'ORCountryCode='JP'ANDGender='F'-- ✅ 正确写法WHERE(CountryCode='CN'ORCountryCode='JP')ANDGender='F'

原因:AND 的优先级比 OR 高(就像乘法先于加法),不加括号,AND 会先把'JP' AND Gender='F'绑成一团。记不住优先级没关系,混用时无脑加括号,永远不会错。

实战思考题

奥运系统的"运动员管理"界面上,有姓名、国家、性别、项目四个筛选框,用户可能只填其中几个(比如只选了性别)。这时程序该怎么办?

答案是:用户填了几个框,SQL 就动态拼几个条件。只选性别时,后台真正执行的是WHERE Gender = 'F';四个全填,就是三个 AND 串四个条件。"按需拼接 SQL"是所有管理系统查询功能的通用套路——这个进阶玩法,我们会在 C# 开发篇里手写一遍。

一句话带走

WHERE 是安检门,AND 是加装的第二、第三道门——全过才放行;OR 是并排的门,过一道就算进;混用时,括号就是导流围栏。

下一篇:《TOP 10 到底是怎么取出来的?——先排队,再掐尖》

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/22 2:00:35

Druid 0.17 部署指南:环境配置与集群化实践

1. Druid 0.17 部署前的环境考量在开始安装Druid 0.17之前,我们需要对部署环境进行全面评估。Druid作为一款实时分析数据库,对系统资源有着特定要求。根据实际生产经验,我建议采用以下配置作为基准线:硬件需求:内存&am…

作者头像 李华
网站建设 2026/7/22 1:59:54

3分钟掌握DCGM-Exporter:从零构建专业级GPU监控体系

3分钟掌握DCGM-Exporter:从零构建专业级GPU监控体系 【免费下载链接】dcgm-exporter NVIDIA GPU metrics exporter for Prometheus leveraging DCGM 项目地址: https://gitcode.com/gh_mirrors/dc/dcgm-exporter 您是否曾在AI训练过程中因GPU温度过高而中断作…

作者头像 李华
网站建设 2026/7/22 1:58:33

C语言指针深度解析:结构体与固件开发的核心实践

1. 项目概述:指针在底层开发中的基石地位最近在带新人做嵌入式项目,发现一个挺普遍的现象:很多刚入行的朋友,对C语言的基础语法掌握得不错,但一涉及到结构体操作、内存直接访问,或者需要跟硬件寄存器打交道…

作者头像 李华
网站建设 2026/7/22 1:58:13

Fontra浏览器字体编辑器:开源字体设计的终极解决方案

Fontra浏览器字体编辑器:开源字体设计的终极解决方案 【免费下载链接】fontra A browser-based font editor 项目地址: https://gitcode.com/gh_mirrors/fo/fontra 你想在浏览器中直接编辑字体文件吗?Fontra正是这样一个革命性的开源项目——一个…

作者头像 李华
网站建设 2026/7/22 1:57:53

2026年外贸建站怎么选平台?展示站、轻交易和询盘能力对比

2026年外贸建站怎么选平台?展示站、轻交易和询盘能力对比外贸建站先要判断自己做的是哪类站:展示站、询盘站、轻交易站,还是完整跨境商城。不同类型对应的平台完全不同。展示站重点是品牌、产品资料和表单;询盘站重点是谷歌收录、…

作者头像 李华