MySQL 系统学习 第二阶段 第三章 DQL(Data Query Language)第二节:WHERE 条件查询
一、WHERE 是什么语法SELECT 字段 FROM 表名 WHERE 条件;例如SELECT * FROM student WHERE age 20;可以理解为student所有数据 ↓ WHERE 进行筛选 ↓ 只留下符合条件的数据 ↓ SELECT 返回所以WHERE 的作用就是过滤数据。二、准备测试数据以后这一章我们都使用下面这张表。CREATE TABLE student( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(30), age INT, gender CHAR(1), score DECIMAL(5,2) );插入数据INSERT INTO student(name,age,gender,score) VALUES (Tom,20,M,88.5), (Jack,22,M,91), (Lucy,19,F,95.5), (Rose,21,F,86), (Mike,20,M,78.5);数据如下idnameagegenderscore1Tom20M88.52Jack22M913Lucy19F95.54Rose21F865Mike20M78.5三、比较运算符这是 WHERE 最基础的内容。1、等于查询Tom。SELECT * FROM student WHERE name Tom;结果idname1Tom再例如查询20 岁。SELECT * FROM student WHERE age 20;结果nameageTom20Mike20注意字符串必须使用单引号 。正确WHERE nameTom错误WHERE nameTom2、大于查询年龄大于20。SELECT * FROM student WHERE age 20;结果nameageJack22Rose213、小于查询年龄小于20。SELECT * FROM student WHERE age 20;结果Lucy。4、大于等于SELECT * FROM student WHERE score 90;结果namescoreJack91Lucy95.55、小于等于SELECT * FROM student WHERE score 80;结果Mike。6、不等于MySQL 支持两种写法。第一种!例如SELECT * FROM student WHERE gender ! M;第二种SELECT * FROM student WHERE gender M;结果一样nameLucyRose企业建议是 SQL 标准写法!是 MySQL 也支持的写法两者都很常见。四、逻辑运算符实际开发中一个条件往往不够。例如查询20 岁以上的男生。AND并且SELECT * FROM student WHERE age 20 AND genderM;结果nameJack必须条件1 并且 条件2都成立。OR或者查询女生或者成绩大于90。SELECT * FROM student WHERE genderF OR score90;结果nameJackLucyRoseNOT取反查询不是女生。SELECT * FROM student WHERE NOT genderF;结果nameTomJackMike也可以写WHERE gender F五、BETWEEN例如查询年龄19~21。SELECT * FROM student WHERE age BETWEEN 19 AND 21;结果nameageTom20Lucy19Rose21Mike20注意BETWEEN 包含两端。即19 ≤ age ≤ 21等价于WHERE age19 AND age21六、IN查询TomMikeLucy很多人写WHERE nameTom OR nameMike OR nameLucy其实推荐SELECT * FROM student WHERE name IN (Tom,Mike,Lucy);结果nameTomLucyMikeIN 本质上就是多个等值判断的简洁写法。七、LIKE重点这是企业开发中最常用的模糊查询。例如搜索用户名。%表示任意多个字符包括 0 个字符。查询T 开头。SELECT * FROM student WHERE name LIKE T%;结果Tom。查询e 结尾。SELECT * FROM student WHERE name LIKE %e;结果RoseMike查询包含 o。SELECT * FROM student WHERE name LIKE %o%;结果TomRose_表示任意一个字符。例如SELECT * FROM student WHERE name LIKE _o%;解释第一位任意字符 第二位o 后面任意多个字符符合Tom不符合Mike八、NULL 判断这是 SQL 新手最容易犯错的地方。错误写法WHERE name NULL;永远查不到结果。正确写法WHERE name IS NULL;查询不是 NULL。WHERE name IS NOT NULL;原因NULL表示未知值不是普通的数据因此不能使用比较必须使用IS NULL或IS NOT NULL。九、逻辑运算符优先级例如WHERE age20 OR genderF AND score90很多人认为从左到右执行。实际上SQL 优先级NOT ↓ AND ↓ OR所以实际上相当于WHERE age20 OR ( genderF AND score90 )企业开发建议复杂条件一定加括号。例如WHERE (age20 OR genderF) AND score90可读性更好也避免歧义。十、企业开发规范推荐SELECT id, name, score FROM student WHERE age 20 AND gender M;不推荐select * from student where age20 and genderM;推荐原因SQL 关键字统一大写不使用SELECT *条件清晰复杂表达式使用括号字段按需查询本节知识总结类型常用语法等于不等于!、大于小于大于等于小于等于范围BETWEEN ... AND ...多值匹配IN (...)模糊查询LIKE空值判断IS NULL、IS NOT NULL并且AND或者OR取反NOT本节思考题企业面试高频请尝试回答下面五个问题BETWEEN 18 AND 20和age 18 AND age 20有什么关系有没有区别BETWEEN 18 AND 20本质等价于age 18 AND age 20都是范围查询区别主要在语法表达形式BETWEEN 更简洁但底层逻辑一致。为什么IN比多个OR更推荐IN本质是集合查询比多个OR更简洁、可读性更强同时数据库优化器通常能更高效处理集合匹配因此企业开发中更推荐使用IN。%和_的区别是什么请分别举一个例子。%表示任意长度字符_表示单个字符占位。%用于模糊匹配整体结构_用于精确控制字符位置。为什么 SQL 判断NULL必须使用IS NULL而不能使用 NULL因为 NULL 表示未知值不是具体数据无法使用比较。SQL 使用IS NULL专门判断空值本质上是三值逻辑TRUE / FALSE / UNKNOWN导致的设计。为什么企业开发中建议复杂的AND、OR条件一定要加括号即使 SQL 可以正常执行因为 SQL 存在 AND/OR 优先级问题AND 优先级高于 OR不加括号容易导致逻辑歧义。企业开发中通过加括号明确逻辑边界提高可读性并避免业务错误。

相关新闻

揭秘伪装备份钓鱼攻击:如何保护你的密码管理器安全

揭秘伪装备份钓鱼攻击:如何保护你的密码管理器安全

1. 项目概述:当你的“数字保险箱”成为攻击目标如果你和我一样,是LastPass这类密码管理器的重度用户,那么“所有鸡蛋放在一个篮子里”的焦虑感,想必时常会掠过心头。我们依赖它,是因为它承诺了安全与便利的完美结合——…

2026/7/7 14:54:12阅读更多 →
B站视频下载神器:解锁大会员4K高清与充电专属内容的智能方案

B站视频下载神器:解锁大会员4K高清与充电专属内容的智能方案

B站视频下载神器:解锁大会员4K高清与充电专属内容的智能方案 【免费下载链接】bilibili-downloader B站视频下载,支持下载大会员清晰度4K,持续更新中 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader 你是否曾经遇…

2026/7/7 14:54:12阅读更多 →
Kotlin中沉浸式状态栏显示布局

Kotlin中沉浸式状态栏显示布局

方法一工具类class SetSystemBars {companion object{fun setupSystemBars(activity: Activity,view: View) {// 沉浸式状态栏配置WindowCompat.setDecorFitsSystemWindows(activity.window, false)activity.window.statusBarColor Color.TRANSPARENTval insetsListener OnAp…

2026/7/7 15:39:15阅读更多 →
DALL-E 3 API 集成实战:5步构建自动化社交媒体配图生成系统

DALL-E 3 API 集成实战:5步构建自动化社交媒体配图生成系统

DALL-E 3 API 集成实战:5步构建自动化社交媒体配图生成系统 在当今内容爆炸的时代,视觉元素已成为社交媒体营销的关键胜负手。数据显示,带有高质量配图的帖子互动率提升幅度可达650%,而人工设计每张图片平均耗时27分钟。本文将带…

2026/7/7 15:39:15阅读更多 →
多通道信号采集系统设计与优化实战

多通道信号采集系统设计与优化实战

1. 项目背景与核心需求 在工业自动化、医疗设备和测试测量领域,多通道信号采集与控制系统一直是关键的技术难点。传统方案通常采用分立式ADC/DAC芯片配合FPGA或通用MCU实现,这种架构不仅增加了PCB面积和功耗,还面临信号同步性差、校准困难等问…

2026/7/7 15:39:15阅读更多 →
汽车电子智能温控系统设计与实现

汽车电子智能温控系统设计与实现

1. 汽车电子散热系统的核心挑战与解决方案 在现代汽车电子系统中,散热管理已经成为决定系统可靠性和性能的关键因素。随着车载ECU(电子控制单元)功能日益复杂,功率密度不断提升,传统的被动散热方案已经无法满足需求。以…

2026/7/7 15:39:15阅读更多 →
104天闪电过会!宇树科技IPO深度解析:420亿估值的“具身智能第一股“如何炼成,人形机器人产业化拐点已至

104天闪电过会!宇树科技IPO深度解析:420亿估值的“具身智能第一股“如何炼成,人形机器人产业化拐点已至

引言:一个时代的IPO 2026年7月6日,上海证券交易所官网显示,宇树科技股份有限公司科创板IPO审核状态变更为"注册生效"。从3月20日提交申请获受理,到7月2日证监会批复注册,全程仅104天,创下科创板预先审阅机制落地以来最快审核纪录。 这家成立于2016年8月的杭州…

2026/7/7 15:39:15阅读更多 →
ICM-42688-P与PIC18F96J94在工业运动控制中的高效组合

ICM-42688-P与PIC18F96J94在工业运动控制中的高效组合

1. ICM-42688-P与PIC18F96J94的黄金组合解析 在工业自动化和机器人控制领域,传感器与微控制器的选型往往决定了整个系统的性能上限。ICM-42688-P作为TDK InvenSense推出的第六代工业级6轴MEMS运动传感器,与Microchip的PIC18F96J94这款高可靠性微控制器的…

2026/7/7 15:34:15阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/7 4:43:43阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/7 2:56:31阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/7 1:03:28阅读更多 →
Acunetix v24.8 深度解析:DAST漏洞扫描器核心原理与DevSecOps实践

Acunetix v24.8 深度解析:DAST漏洞扫描器核心原理与DevSecOps实践

1. 项目概述:Acunetix v24.8 高级版漏洞扫描器深度解析作为一名在网络安全领域摸爬滚打多年的老兵,我深知一款趁手的“兵器”对于安全测试工作意味着什么。今天要聊的,就是Web应用安全测试领域里一个响当当的名字——Acunetix。特别是其v24.8…

2026/7/7 0:02:41阅读更多 →
国产化信创改造:达梦/人大金仓适配与多数据库兼容方案实战(SpringBoot)

国产化信创改造:达梦/人大金仓适配与多数据库兼容方案实战(SpringBoot)

国产化信创改造:达梦/人大金仓适配与多数据库兼容方案实战(SpringBoot) 🌐 演示地址:http://ruoyioffice.com | 📦 源码1GitHub:ruoyi-office | 📦 源码2GitCode:ruoyi-o…

2026/7/7 0:02:41阅读更多 →
CentOS 7/8 SSH 连接失败:5步系统性排错流程与决策树

CentOS 7/8 SSH 连接失败:5步系统性排错流程与决策树

CentOS SSH连接故障排查:从基础检查到深度修复的完整指南引言当你尝试通过Xshell或其他SSH客户端连接CentOS服务器时,突然遭遇"Connection refused"或"Connection timed out"的错误提示,这种经历对任何运维人员或开发者来…

2026/7/7 0:02:41阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/7 5:11:21阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/7 5:11:21阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/7 5:11:21阅读更多 →