零基础学SQL:三小时笔记带你掌握核心查询语句
简介这份资源是B站Mosh老师SQL三小时入门课程的配套笔记以PDF形式整理面向零基础或希望系统梳理SQL核心语法的开发者与数据分析初学者。内容覆盖SQL基础知识、SELECT子句、WHERE条件筛选、AND/OR/NOT逻辑操作符以及IN、BETWEEN、LIKE、REGEXP等常用操作符的语法与用法帮助读者快速建立查询语句的书写框架。资源包内共1个PDF文件大小约2.43MB轻量便携适合随时查阅与打印。目前已有976人学习下载说明其在入门群体中具有一定认可度。笔记以速查表形式呈现条理清晰便于对照练习与复习可作为学习Mosh视频课程时的辅助材料也可独立用于日常SQL语句的快速检索与巩固适合需要夯实查询基础、提升数据库操作熟练度的读者参考使用。1. 零基础学 SQL三小时笔记到底能带你走多远很多人第一次听到“数据库”三个字脑子里浮现的是一排排黑色屏幕、密密麻麻的代码然后本能地觉得自己学不会。其实你每天都在跟数据库打交道——手机通讯录按姓氏排序、购物 App 里筛选价格区间、外卖软件按距离列出商家背后都是一句句 SQL 在干活。SQL 就是跟数据库对话的语言你告诉它“我要什么”它把结果端到你面前。这份笔记来自一套三小时的入门视频课把 SQL 最核心的查询语句从头到尾串了一遍包括 SELECT、WHERE、ORDER BY、JOIN 这些你以后每天都会用到的操作。它适合完全没碰过数据库的新手也适合学过一点但总记不住语法的人。你不需要先学编程不需要装复杂的开发环境跟着笔记敲一遍就能自己查出想要的数据。2. 先搞懂 SQL 到底在干什么从一张表说起2.1 数据库不是黑匣子它就是一堆 Excel 表你可以把数据库想象成一个超级 Excel 文件里面有很多张表table每张表有行有列。列叫字段column比如first_name、points行叫记录record比如一个客户的所有信息。SQL 就是你用来翻这个 Excel 的遥控器。你不需要知道数据存在硬盘的哪个扇区也不需要管它用了什么索引结构只要写一句SELECT * FROM customers它就把 customers 表里所有行所有列都捞出来给你看。这份笔记里反复出现的sql_store就是一个数据库的名字customers、orders就是里面的表。你入门阶段要做的就是学会用几把“钥匙”打开不同的门取出你要的那部分数据。2.2 为什么建议新手从 SELECT 和 WHERE 开始SQL 语句有几十种但日常工作中八成以上的操作只围绕两个动作查和筛。查就是 SELECT筛就是 WHERE。笔记里第一个例子就是这两者的组合-- 从 customers 表里选出所有列 -- 条件是 state 等于 CA -- 结果按 first_name 排序只取前 3 条 SELECT * FROM customers WHERE state CA ORDER BY first_name LIMIT 3;这段代码的意思是去 customers 表找到 state 是 CA 的那些行按 first_name 从小到大排好最后只给我看前三条。*代表所有列WHERE后面跟筛选条件ORDER BY控制排序LIMIT限制返回数量。你第一次跑的时候可能会想为什么不是SELECT first_name, state因为*最省事先看到全部数据心里有底了再挑列。入门阶段不要追求写得多优雅先让结果出来再慢慢优化。2.3 三小时笔记的知识地图长什么样这份笔记的目录本身就是一条很合理的学习路径先学 SELECT 和 WHERE 把数据查出来再学逻辑运算符AND、OR、NOT组合条件接着用 IN、BETWEEN、LIKE、REGEXP 做更灵活的匹配然后处理空值IS NULL再学排序和限制条数最后进入多表查询JOIN、UNION和插入数据INSERT。你不需要一次全记住按这个顺序走每学一个点就打开数据库敲一遍三小时足够你把核心骨架搭起来。笔记里还特别标注了 SQL 不区分大小写但 MySQL 里每条语句必须以分号结尾——这个细节新手最容易翻车少一个分号整段代码就卡住不动。3. 第一个能跑的查询手把手带你敲出结果3.1 准备一个能写 SQL 的地方你不需要装完整的 MySQL 服务器入门阶段用在线 SQL 练习环境或者轻量级工具就行。打开任意一个支持 MySQL 语法的在线编辑器你会看到一个输入框和一个运行按钮。第一步永远是选数据库-- 告诉数据库我要用 sql_store 这个库 USE sql_store;USE就是切换当前操作的数据库相当于在 Excel 里点开某个工作表。如果不写这一句后面所有表名都会找不到。执行完没有报错就说明你已经在 sql_store 里面了。3.2 写出你的第一条 SELECT 语句接着敲下面这行-- 查询 customers 表的所有数据 SELECT * FROM customers;点击运行你会看到一张表格列有 customer_id、first_name、last_name、birthdate、phone、address、city、state、points。这就是 customers 表的全貌。SELECT后面跟你要的列*是通配符表示“全部”FROM后面跟表名。注意语句末尾的分号在 MySQL 里它是命令结束的标志少了它编辑器会一直等你继续输入。如果你只想要姓名和积分把*换成具体列名-- 只查看 first_name 和 points 两列 SELECT first_name, points FROM customers;列名之间用逗号隔开顺序就是你希望结果里列出现的顺序。这一步跑通你就已经完成了 SQL 最核心的动作——从数据库里取数据。3.3 加上 WHERE让查询听你的话全表数据太多你通常只关心一部分。比如只看积分大于 1000 的客户-- 筛选 points 大于 1000 的客户 SELECT * FROM customers WHERE points 1000;WHERE后面跟条件表达式是大于是大于等于是小于是小于等于是等于和!都是不等于。字符串要用单引号包起来比如WHERE state CA。日期也类似WHERE birthdate 1990-01-01。如果你想同时满足两个条件用AND连接满足任意一个就行用OR想否定一个条件用NOT。笔记里给了一个很典型的例子-- 生日在 1990 年之后 并且 积分大于 1000 SELECT * FROM customers WHERE birthdate 1990-01-01 AND points 1000;把AND换成OR结果集会变大因为只要满足其中一个条件就会被选中。NOT的写法是WHERE NOT (birthdate 1990-01-01)意思是生日不在 1990 年之后。这三个逻辑运算符你多试几次就能感受到它们对结果的影响。4. 把查询写得更聪明排序、去重与模糊匹配4.1 ORDER BY 和 LIMIT 配合使用数据查出来是乱序的你想按积分从高到低看就用ORDER BY points DESC。DESC是降序ASC是升序默认就是升序可以不写。笔记里有一个多列排序的例子-- 先按 state 升序排state 相同的再按 first_name 降序排 SELECT * FROM customers ORDER BY state, first_name DESC;LIMIT用来限制返回条数LIMIT 3就是只给前三条。它还可以跳过若干条再取比如LIMIT 6, 3表示跳过前 6 条从第 7 条开始取 3 条。这个用法在分页场景里很常见你以后做网页列表翻页时一定会用到。4.2 DISTINCT 去重和 IN 批量匹配有时候你只想知道有哪些不同的州而不是每个客户的具体信息这时候用DISTINCT-- 查看 customers 表里出现过哪些不重复的 state SELECT DISTINCT state FROM customers;结果里每个州只出现一次。如果你要筛选多个特定值比如只看 VA、NY、CA 三个州的客户用IN比写三个OR更简洁-- 筛选 state 是 VA、NY 或 CA 的客户 SELECT * FROM customers WHERE state IN (VA, NY, CA);IN后面的括号里可以放任意多个值用逗号隔开。BETWEEN则是处理范围比如WHERE points BETWEEN 100 AND 200等价于points 100 AND points 200包含边界值。4.3 LIKE 和 REGEXP处理不精确的文本你不可能每次都记得完整的名字所以需要模糊匹配。LIKE配合两个通配符使用%代表任意多个字符_代表恰好一个字符。比如找 first_name 以 b 开头的客户-- first_name 以 b 开头后面可以是任意字符 SELECT * FROM customers WHERE first_name LIKE b%;如果写LIKE b_就只匹配两个字符且以 b 开头的名字。REGEXP比 LIKE 更强大支持正则表达式。笔记里给了几个实用例子WHERE first_name REGEXP ^a找以 a 开头的WHERE first_name REGEXP ey$|on$找以 ey 或 on 结尾的WHERE first_name REGEXP b[ru]找包含 b 后面跟着 r 或 u 的。^表示开头$表示结尾|是或[abc]匹配其中任意一个字符[a-d]匹配 a 到 d 范围内的字符。这些符号第一次看会有点晕你只需要先记住^和$的用法其他的遇到再查。4.4 空值判断和插入数据数据库里有些字段是空的比如客户没留电话phone列就是 NULL。注意 NULL 不能用判断必须用IS NULL-- 找出没有填写电话号码的客户 SELECT * FROM customers WHERE phone IS NULL;反过来IS NOT NULL就是找填了电话的。最后你不仅要会查还要会往表里加数据。INSERT INTO的写法如下-- 向 customers 表插入一条新记录 INSERT INTO customers(first_name, phone, points) VALUES (Mosh, NULL, DEFAULT);括号里指定要填的列VALUES后面按顺序给值。NULL表示空DEFAULT表示用表定义的默认值。一次插入多条就写多组括号用逗号隔开。执行完再用SELECT * FROM customers看一眼新记录就在里面了。5. 新手最容易踩的坑排查与避坑指南5.1 分号漏写整段代码卡住不动现象敲完语句点运行编辑器没反应或者提示语法错误指向末尾。原因MySQL 要求每条语句以分号结尾漏了分号它以为你还没写完。解决养成习惯每写完一句先补分号再换行。如果已经卡住在输入框末尾补一个;再运行。5.2 字符串引号用错条件永远不成立现象WHERE state CA在某些环境报错或者查不到任何数据。原因SQL 里字符串标准写法是单引号双引号在部分数据库里被当作列名或标识符。解决统一用单引号包字符串比如CA、1990-01-01。数字不需要引号直接写1000。5.3 JOIN 之后数据变多以为查错了现象customers表只有 10 行JOIN 之后结果有 30 行。原因一个客户可能有多个订单JOIN 会把匹配的每一组都列出来这是正常行为。解决先理解 JOIN 是“按条件拼接两张表”行数增加说明关联关系是一对多。如果只想要客户信息用SELECT DISTINCT c.*去重或者先想清楚业务上到底要什么。5.4 NULL 用等号判断结果永远为空现象WHERE phone NULL查不到任何记录。原因NULL 代表“未知”它不等于任何值包括它自己。解决改用IS NULL或IS NOT NULL。这个坑几乎每个新手都会踩一次记住 NULL 是特殊状态不能用常规比较运算符。5.5 忘记 USE 数据库表名找不到现象运行SELECT * FROM customers提示表不存在。原因当前没有选中任何数据库或者选错了库。解决在查询前先执行USE sql_store;确认左上角或状态栏显示的数据库名是你想要的。如果表名拼写错误也会报同样的错顺便检查一下表名。6. 下一步怎么走从三小时笔记到真正会用 SQL你跟着上面这些例子敲完已经摸到了 SQL 的核心骨架。接下来不要急着去啃厚书先把这份笔记里的每个操作自己改一改参数跑一遍。比如把WHERE points 1000改成WHERE points BETWEEN 500 AND 1500把ORDER BY state改成ORDER BY points DESC, state ASC看看结果有什么变化。改参数是成本最低的练习方式你不需要理解底层原理只需要观察输入和输出的对应关系。然后把 JOIN 单独拿出来多练几次。笔记里给了 INNER JOIN、LEFT JOIN、USING 和 CROSS JOIN 的写法你可以在customers和orders两张表上反复试先查所有客户及其订单再查没有下过订单的客户用 LEFT JOIN 加WHERE o.customer_id IS NULL最后试试 CROSS JOIN 把颜色和尺寸组合起来。JOIN 是 SQL 从单表操作跨向多表操作的关键一步多花半小时在这里后面学子查询和视图会轻松很多。再往后你可以按这个顺序补子查询在 WHERE 里嵌套 SELECT、聚合函数COUNT、SUM、AVG、GROUP BY、创建表和修改表结构CREATE TABLE、ALTER TABLE、索引的基本概念。这些内容这份三小时笔记没有深入展开但你已经有了查询基础学起来不会觉得突兀。入门阶段最怕的是东看一点西看一点最后连一条完整的查询都写不顺。你手里这份笔记的好处是它把最常用的语句按使用频率排好了你顺着敲一遍就相当于把 SQL 的日常操作过了一遍。我自己刚开始学的时候总想着把所有的语法都背下来再动手结果背了三天就放弃了。后来改成每天只练一个点比如今天只练 WHERE 的多种条件组合明天只练 ORDER BY 和 LIMIT 的配合反而记得牢。从那以后我每次学新东西都强制自己先跑通一个最小例子再慢慢加复杂度。希望这份笔记也能帮你迈出第一步别怕报错报错就是数据库在告诉你哪里没写对。本文还有配套的精品资源点击获取

相关新闻

如何快速上手 Boogu-Image:从环境安装到第一张AI生成图的完整教程

如何快速上手 Boogu-Image:从环境安装到第一张AI生成图的完整教程

人工智能基础模型媒体生成计算机视觉 【免费下载链接】Boogu-Image Boogu-Image-0.1 is an Apache-2.0 open-source image generation and editing model family that delivers near-closed-source performance with an order of magnitude less data. 项目地址: ht…

2026/10/17 21:52:54 阅读更多 →
解码开销小于0.5%是怎么做到的?Qwen3.5-9B-singprobe内生护栏原理深度剖析

解码开销小于0.5%是怎么做到的?Qwen3.5-9B-singprobe内生护栏原理深度剖析

【免费下载链接】Qwen3.5-9B-singprobe 项目地址: https://ai.gitcode.com/hf_mirrors/inclusionAI/Qwen3.5-9B-singprobe 点击查看 免费下载 Qwen3.5-9B-singprobe 是一个基于 Qwen3.5-9B 大模型的"内生式"流式安全护栏探针,它在模型逐 toke…

2026/10/17 21:52:54 阅读更多 →
3步在本地跑起文生视频:Wan2.1-T2V-1.3B-GGUF快速上手教程(huggingface-cli完整演示)

3步在本地跑起文生视频:Wan2.1-T2V-1.3B-GGUF快速上手教程(huggingface-cli完整演示)

【免费下载链接】Wan2.1-T2V-1.3B-GGUF 项目地址: https://ai.gitcode.com/hf_mirrors/samuelchristlie/Wan2.1-T2V-1.3B-GGUF 点击查看 免费下载 Wan2.1-T2V-1.3B-GGUF 是一个把阿里 Wan2.1 开源文生视频(Text-to-Video)模型直接转换为 GGU…

2026/10/18 23:51:16 阅读更多 →

最新新闻

自助KTV系统开发:智能门禁与线上预约的完整闭环方案

自助KTV系统开发:智能门禁与线上预约的完整闭环方案

近年来,线下娱乐行业对"无人化、自助化"的诉求越来越强烈,传统KTV面临的人力成本高、闲时资源浪费、用户体验割裂等痛点,催生了一整条自助娱乐系统开发的赛道。这个"自助KTV系统开发:智能门禁与线上预约"项目…

2026/10/19 5:56:35 阅读更多 →
ArtCraft:创意生产的系统化方法论与工程化实践

ArtCraft:创意生产的系统化方法论与工程化实践

1. 项目概述:ArtCraft 不是“艺术手作”的简单拼贴,而是一套可落地的创意生产方法论ArtCraft 这个词乍看像英文单词 art(艺术)和 craft(工艺/手作)的合成词,很容易被理解成“艺术手作”“创意DI…

2026/10/19 5:56:35 阅读更多 →
artcraft:连接算法与手工的参数化创作方法论

artcraft:连接算法与手工的参数化创作方法论

1. 项目概述:从“artcraft”这个词开始,我们到底在做什么?“artcraft”这个词乍一看像拼写错误,但其实它是个合成词——art(艺术) craft(工艺),合起来直译就是“艺术工艺…

2026/10/19 5:56:35 阅读更多 →
电梯电瓶车AI报警系统:毕设可落地的YOLO端到端方案

电梯电瓶车AI报警系统:毕设可落地的YOLO端到端方案

简介:本资源是一套基于YOLOv8的电梯场景电瓶车闯入智能检测与报警系统,面向计算机、人工智能、自动化等专业在校学生及初学者,解决公共场所安全监管中的典型目标识别与实时告警问题,特别适合作为毕业设计、课程设计或项目原型快速…

2026/10/19 5:56:35 阅读更多 →
激光打标机中振镜与场镜的区别:从原理到故障排查

激光打标机中振镜与场镜的区别:从原理到故障排查

前两天去客户现场调一台紫外打标机,对方工程师指着打标头问我:“这个场镜的焦距是多少?”我顺着他指的方向看过去,他指的其实是振镜的X轴镜片。这个场景我遇到过太多次了,振镜和场镜,一个管“激光往哪打”&…

2026/10/19 5:56:35 阅读更多 →
STM32通过IIC驱动MPU6050六轴传感器:从时序到姿态解算实战指南

STM32通过IIC驱动MPU6050六轴传感器:从时序到姿态解算实战指南

做嵌入式这几年,被问到最多的传感器大概就是 MPU6050。这颗六轴芯片配合 STM32 的 IIC 接口,几乎是所有姿态相关项目的标准开局:两轮自平衡、云台增稳、手势遥控、跌倒检测……不管你是刚入门的新手,还是在做毕业设计的同学&#…

2026/10/19 5:55:34 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →