SQL三小时入门笔记:核心语法速查与常见误区

发布时间:2026/10/31 11:32:26
SQL三小时入门笔记:核心语法速查与常见误区 简介这份资源是B站Mosh老师三小时SQL入门课程的配套笔记以PDF形式整理面向零基础或希望系统梳理SQL语法的开发者与数据库初学者帮助读者在观看视频后快速回顾核心知识点。压缩包内共1个PDF文件约2.43MB内容以速查表形式组织涵盖SQL基础概念、SELECT子句、WHERE条件筛选、AND/OR/NOT逻辑操作符以及IN、BETWEEN、LIKE、REGEXP等常用操作符的语法与示例并延伸至IS NULL、ORDER BY、LIMIT、内外连接、USING、交叉连接、UNION与数据插入等主题目录结构清晰便于按模块检索。已有981人学习下载适合作为课程复习提纲或日常查询手册使用能帮助读者快速定位语法写法、对照示例理解条件筛选与多表连接思路逐步建立较完整的SQL知识框架。1. 到底什么是 SQL一份三小时课程笔记能讲清多少事很多人第一次听到 SQL脑子里浮现的是一堆大写字母和分号像某种只有程序员才懂的咒语。其实换个生活场景就通了你手机里的通讯录能按姓氏排序、能搜出所有姓“张”的人、能只显示最近半年联系过的——这些动作背后就是 SQL 在干活。SQL 全称结构化查询语言通俗地说它是人和关系型数据库之间约定好的一套“提问句式”你用固定格式问数据库用表格回答。它不负责画界面也不管数据长什么样只专注一件事——把想要的数据准确地捞出来。搞懂它你就能自己从一堆表格里翻出答案而不是每次都求人帮忙导数据。这份来自三小时入门课程的笔记把最常用的那批句式压缩成了一张速查表正好适合拿来建立第一层认知。2. 为什么 SQL 值得单独学它解决的是“问对问题”的成本2.1 数据库不是 ExcelSQL 也不是公式不少人把 SQL 当成“高级版 Excel 公式”觉得拖拖拽拽也能出结果何必学一门语言。差别在于规模和数据关系。Excel 适合一张表几百上千行、自己看着办数据库里往往是几十张表互相咬合客户表、订单表、商品表各管一摊靠人眼对不上号。SQL 的价值是把“我要什么”写成一句可重复执行的指令今天跑、明天跑、换个人跑结果一致。打个比方Excel 像手工记账本SQL 像给账本配了一个听得懂人话的会计——你说“把去年消费超过一千的客户按城市分组数一下”它就去办不用你一行行筛。课程笔记里反复出现的SELECT * FROM customers WHERE state CA拆开看就是三件事从哪张表拿customers、拿哪些列* 表示全部、按什么条件筛state 等于 CA。这三段式结构是后面所有复杂查询的地基先把这个骨架记牢比背一百条语法有用。2.2 三小时能覆盖的恰好是日常八成场景入门课程通常不追求讲全而是挑高频构造讲透。这份笔记的目录顺序很说明问题先 SELECT 和 WHERE 解决“取数过滤”再逻辑运算符、IN、BETWEEN、LIKE、REGEXP 解决“条件怎么写得更准”然后 ORDER BY、LIMIT 解决“排序和截取”最后 JOIN、UNION、INSERT 解决“多表拼合和写入”。这条线走下来日常写报表、查异常、导名单基本够用。提示笔记里明确写了 SQL 不区分大小写但 MySQL 里每条语句必须以分号结尾。这两条是新手翻车率最高的地方写完不加分号报错信息往往还看不出原因。2.3 为什么是“笔记”而不是“教程”三小时视频的信息密度有限真正能留下来的是结构。笔记把每个操作符配一句示例比如WHERE points BETWEEN 100 AND 200、WHERE first_name LIKE b%这种“一句场景一句写法”的对照比大段讲解更适合事后翻查。它的定位不是让你从零读懂原理而是你听完课、动手写时卡住了能快速对上是哪个关键字用错了。理解这一点就不会指望靠它变成专家也不会低估它作为“随身卡片”的作用。3. 过滤与匹配WHERE 后面那些操作符到底怎么选3.1 比较、逻辑、IN、BETWEEN 的分工WHERE 子句是 SQL 里最像“提问”的部分条件写得准结果才对。比较运算符、、、、、负责单点判断逻辑运算符 AND、OR、NOT 负责把多个判断串起来。这里有个容易忽略的细节AND 要求两边都成立OR 只要一边成立NOT 则把整个条件反过来。笔记里的例子很典型——WHERE birthdate 1990-01-01 AND points 1000找的是“又年轻又有积分”的人换成 OR 就变成“满足其一即可”结果集立刻变大。IN 和 BETWEEN 是两种“偷懒但清晰”的写法。要匹配多个离散值比如 VA、NY、CA 三个州用state IN (VA,NY,CA)比写三个 OR 更短也更不容易漏括号。要匹配一个连续区间points BETWEEN 100 AND 200等价于points 100 AND points 200边界是包含的。选哪个不看技术难度看语义离散列举用 IN范围判断用 BETWEEN读代码的人一眼就懂你的意图。3.2 LIKE 与 REGEXP模糊匹配的两档火力LIKE 是最朴素的模糊匹配只有两个通配符%代表任意多个字符_代表恰好一个字符。first_name LIKE b%找的是以 b 开头的名字LIKE _ob找的是三个字符、后两位是 ob 的名字。它够用、好记但表达力有限没法描述“以 ey 或 on 结尾”这种组合。REGEXP 把正则表达式引进来火力立刻上一个档次。笔记里列了几个锚点^表示开头$表示结尾|表示或[abc]匹配其中任一字符[a-d]匹配区间内任一字符。于是REGEXP ey$|on$能一次捞出两种结尾REGEXP ^my|se能同时覆盖“以 my 开头”和“包含 se”。代价是可读性下降写错一个符号结果就偏了。日常够用 LIKE 就别上 REGEXP只有在模式确实复杂时才值得动用它。3.3 IS NULL空值不是零也不是空字符串这是初学者最容易栽的坑。数据库里的 NULL 表示“没有值”它不等于 0也不等于空字符串。所以判断“没有电话号码”不能写phone NULL必须写phone IS NULL。原因在于 NULL 参与任何比较都返回“未知”而不是真或假用等号永远筛不出东西。笔记里专门列了这一条说明它在实际查询里出现频率不低——缺失数据、可选字段、未填写的日期都靠 IS NULL 来处理。4. 排序、截取与多表拼合从单表到“关系”的跨越4.1 ORDER BY 与 LIMIT控制结果的形状取到数据只是第一步怎么呈现同样重要。ORDER BY 决定排序默认升序加 DESC 变降序还可以多列叠加ORDER BY state, first_name DESC表示先按州升序排州相同的再按名字降序排。LIMIT 负责截取LIMIT 3取前三行LIMIT 6, 3表示跳过前六行再取三行——这个“偏移量, 数量”的写法在分页场景里很常见翻页时改的就是前面那个数字。注意LIMIT 单独用没有意义它总是配合 ORDER BY 才有稳定结果。不加排序直接 LIMIT每次返回哪几行是不确定的这种“玄学”结果在排查问题时最坑人。4.2 JOIN 的本质按共同字段把两张表缝起来单表查询再熟遇到“客户和他下的订单”这种关系就得靠 JOIN。内连接JOIN ... ON只保留两边都能对上的行左外连接LEFT JOIN保留左表全部行右表对不上的地方填 NULL。笔记里的例子很直白FROM customers c LEFT JOIN orders o ON c.customer_id o.customer_id返回所有客户有没有订单都列出来没订单的订单字段为空。这个区别决定了你统计“有多少客户下过单”还是“有多少客户”时该用哪种连接用错就会少算人。如果两张表用于连接的列名完全一样可以用USING (customer_id)简化写法省掉 ON 里的等值条件。CROSS JOIN 则是另一种逻辑不做匹配直接把两张表的所有组合铺开比如颜色和尺码交叉得到每种颜色配每个尺码的完整清单。UNION 把两个查询结果上下拼在一起要求列数和类型对得上笔记里用客户表和客户线索表合并姓名地址来演示。4.3 INSERT写入时的默认值与多行插入查询之外写入也是基础能力。INSERT INTO customers(first_name, phone, points) VALUES (Mosh, NULL, DEFAULT)演示了三件事指定列名可以跳过不写的列NULL 可以显式写入表示空DEFAULT 表示交给数据库用默认值。多行插入则是在 VALUES 后面跟多组括号用逗号隔开一次写多条记录比循环单条插入省事得多。这些细节单看琐碎实际建数据、造测试样本时天天用到。5. 常见误区与易混概念这几组词别再混着用5.1 WHERE 和 HAVING 不是一回事易混点都用来筛数据看起来可以互换。为什么混初学阶段只接触单表过滤还没遇到分组聚合自然分不清。怎么区分WHERE 在分组之前过滤原始行HAVING 在分组之后过滤聚合结果。笔记覆盖的是基础查询还没到 GROUP BY但提前知道这条边界等学到聚合时就不会把条件写错位置。5.2 NULL 与空字符串、零值易混点都表示“没有内容”。为什么混界面上看都是空白直觉上以为相等。怎么区分NULL 是“未知/缺失”空字符串是一个长度为 0 的确定值0 是一个确定的数字。判断缺失只能用 IS NULL 或 IS NOT NULL用等号比较永远得不到想要的结果。5.3 LIKE 的 % 与 REGEXP 的 .*易混点都表示“任意字符”。为什么混正则里.*和 LIKE 的%语义接近写顺手了就串。怎么区分LIKE 只有%和_两个通配符语法简单REGEXP 走的是正则体系.匹配单个字符、*表示重复含义完全不同。在 LIKE 里写.*不会报错但匹配的是字面上的点和星号结果自然不对。5.4 INNER JOIN 与 LEFT JOIN 的行数差异易混点都叫 JOIN写出来都能跑。为什么混小数据量下两者结果可能一样掩盖了差异。怎么区分内连接只留匹配上的行左连接保留左表全部行。判断标准很简单——你想不想要“没有对应记录”的那部分主体。统计客户总数用左连接统计有订单的客户用内连接。5.5 UNION 与 JOIN 的方向易混点都是“合并”。为什么混中文都翻译成合并、连接。怎么区分JOIN 是横向拼列把两张表的字段并到一行里UNION 是纵向拼行把两个结果集上下叠起来。一个变宽一个变长想清楚要的是哪种形状就不会选错。6. 什么时候该翻这份笔记什么时候别指望它判断一份资料的价值看它能不能在你卡住的那几分钟里给出答案。这份三小时课程笔记最适合的场景很具体你已经看过一遍讲解动手写查询时忘了某个操作符的写法或者不确定 LIKE 和 REGEXP 该选哪个翻到对应小节一句示例就能对上。它按“基础语法—过滤—排序—连接—写入”的顺序编排每个知识点配一条可直接改参数运行的语句当速查卡片用效率很高。刚入门、想快速建立 SQL 句式骨架的人拿它对照练习也合适。但它有明确的边界。笔记自己就写了这些内容覆盖的是核心语言构造“并不完整”。它不讲索引优化、事务、存储过程也不深入讲 GROUP BY 聚合和子查询——而这些恰恰是实际工作里绕不开的部分。指望靠它通过面试或独立设计数据库会失望。另外示例基于 MySQL 语法换到其他数据库产品分号规则、LIMIT 写法、正则支持程度都可能有出入照搬前先确认环境。我自己的习惯是把这类速查笔记放在手边当“后悔药”写查询前先扫一眼对应小节确认关键字没拼错、条件位置没放反再动手。血泪经验是很多报错不是逻辑难而是 NULL 用了等号、LIMIT 没配 ORDER BY 这种小地方翻车。从那以后我每次写带过滤和连接的查询都强制把 WHERE 条件、连接类型、排序截取这三段过一遍错漏明显少了。希望这份整理也能帮到你需要完整速查内容时按文末方式获取即可。本文还有配套的精品资源点击获取

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询