说明:每课仅提炼核心考点、易错点,适配零基础+英语一般学习者,结合书中示例表(Customers/Vendors/Products等),可直接对照看书、做题使用。

第1课:了解SQL

  • 核心:SQL是用于与数据库通信的语言,不分大小写(关键字建议大写,区分字段/表名);

  • 用途:查询、插入、更新、删除数据库数据,核心是“查询”(SELECT语句)。

第2课:检索数据

  • 核心语法:SELECT 列名 FROM 表名;(最基础查询,必背);

  • 易错:多列用逗号分隔,最后一列不加逗号;*

  • 补充:SELECT * 表示查询表中所有列(日常可用,正式场景尽量写具体列名)。

第3课:排序检索数据

  • 核心:ORDER BY 子句,用于对查询结果排序,必须放在SELECT语句最后;

  • 规则:默认升序(ASC,可省略),降序用DESC;

  • 易错:多列排序时,先按第一列排序,第一列相同再按第二列排序。

第4课:过滤数据

  • 核心:WHERE 子句,用于过滤行,放在FROM之后、ORDER BY之前;

  • 常用操作符:=(等于)、<>(不等于)、<(小于)、>(大于)、<=、>=、BETWEEN(介于两者之间);

  • 易错:NULL值不能用=或<>判断,需用IS NULL / IS NOT NULL;

  • 补充:NOT操作符(否定条件),可放列前(NOT 列名=值)或列后(列名 NOT 操作符)。

第5课:高级过滤数据

  • 核心:组合条件过滤,用AND(同时满足)、OR(满足一个即可);

  • 易错:AND优先级高于OR,需用括号()改变优先级;

  • IN操作符:替代多个OR,格式:列名 IN (值1, 值2,…),简洁高效;

  • NOT IN:否定IN条件,过滤不在指定集合中的数据。

第6课:用通配符进行过滤

  • 核心:LIKE 子句 + 通配符,用于模糊查询;

  • 常用通配符:%(匹配任意长度字符,包括0个)、_(匹配单个字符);

  • 易错:%不匹配NULL值;避免通配符放在开头(影响查询效率);

  • 补充:NOT LIKE 用于否定模糊查询。

第7课:创建计算字段

  • 核心:将多个列、或列与常量/函数结合,生成新的“计算字段”;

  • 常用操作:拼接(用||或CONCAT函数)、算术运算(+、-、*、/);

  • 易错:拼接时注意空格(可手动添加空格常量);

  • AS关键字:给计算字段起别名,格式:计算表达式 AS 别名(别名可加引号,避免与关键字冲突)。

第8课:使用函数处理数据

  • 核心:函数用于处理数据(文本、数值、日期),不同数据库函数略有差异(书中以MySQL/PostgreSQL为例);

  • 文本函数:TRIM(去除空格)、UPPER(转大写)、LOWER(转小写);

  • 数值函数:ROUND(四舍五入)、AVG(平均值)、SUM(求和);

  • 日期函数:NOW(当前日期时间)、YEAR(提取年份);

  • 易错:函数区分数据库,不要死记,重点记“功能”(比如“取平均值”就想到AVG)。

第9课:汇总数据

  • 核心:聚合函数(汇总函数),对数据进行统计,返回单个值;

  • 常用聚合函数:COUNT(计数)、SUM(求和)、AVG(平均值)、MAX(最大值)、MIN(最小值);

  • 易错:COUNT(*) 计数所有行(包括NULL),COUNT(列名) 计数非NULL行;

  • 补充:聚合函数可结合DISTINCT,过滤重复值(比如AVG(DISTINCT 列名))。

第10课:分组数据

  • 核心:GROUP BY 子句,将数据按指定列分组,配合聚合函数使用;

  • 规则:GROUP BY 后面的列,必须是SELECT中除聚合函数外的所有列;

  • 易错:GROUP BY 必须放在WHERE之后、ORDER BY之前;

  • HAVING子句:过滤分组后的结果(WHERE过滤行,HAVING过滤分组)。

第11课:使用子查询

  • 核心:子查询(嵌套查询),将一个查询的结果作为另一个查询的条件;

  • 常用场景:WHERE子句中使用子查询(返回单个值或多个值);

  • 易错:子查询返回多个值时,需用IN配合,不能用=;

  • 补充:子查询尽量简洁,复杂查询可拆分成多个简单查询(新手友好)。

第12课:联结表

  • 核心:联结(JOIN),用于关联多个表(书中5张表核心关联:Orders关联Customers、OrderItems关联Orders和Products、Products关联Vendors);

  • 基础联结:等值联结(内联结),格式:FROM 表1 JOIN 表2 ON 表1.列 = 表2.列;

  • 易错:联结时必须写关联条件(ON子句),否则会出现笛卡尔积(数据冗余);

  • 补充:表别名(简化写法,比如Customers AS c),不影响查询结果。

第13课:创建高级联结

  • 内联结(INNER JOIN):只返回两个表中匹配的行(默认联结类型,可省略INNER);

  • 外联结(LEFT/RIGHT JOIN):返回一个表的所有行,另一个表匹配的行(不匹配的显示NULL);

  • 自联结:将表与自身联结,用于查询同一表中相关的数据(比如查询同一客户的多个订单);

  • 易错:外联结的LEFT/RIGHT,是以“LEFT/RIGHT后面的表”为基准。

第14课:组合查询

  • 核心:UNION 操作符,将多个SELECT语句的结果合并成一个结果集;

  • 规则:多个SELECT语句的列数、列类型必须一致;

  • 易错:UNION 默认去除重复行,UNION ALL 保留重复行(效率更高);

  • 补充:组合查询的结果可用ORDER BY排序(放在最后一个SELECT语句后)。

第15课:插入数据

  • 核心语法1(插入单行):INSERT INTO 表名(列1, 列2,…) VALUES(值1, 值2,…);

  • 核心语法2(插入多行):INSERT INTO 表名(列1, 列2,…) VALUES(值1,值2), (值3,值4),…;

  • 易错:列名与值一一对应,数据类型匹配;NULL值可省略不写;

  • 补充:插入查询结果(INSERT INTO 表名 SELECT 语句),适合批量插入。

第16课:更新和删除数据

  • 更新数据:UPDATE 表名 SET 列1=值1, 列2=值2 WHERE 条件;(必加WHERE,否则更新所有行);

  • 删除数据:DELETE FROM 表名 WHERE 条件;(必加WHERE,否则删除所有行);

  • 易错:UPDATE/DELETE 无撤销,操作前先执行SELECT查询,确认过滤条件正确;

  • 补充:UPDATE可更新多个列,用逗号分隔;DELETE删除整行,不删除列。

第17课:创建和操纵表

  • 创建表:CREATE TABLE 表名(列名 数据类型 约束,…);(书中示例表的创建语句可参考附录);

  • 常用约束:NOT NULL(非空)、PRIMARY KEY(主键,唯一且非空);

  • 修改表:ALTER TABLE 表名 ADD 列名 数据类型(添加列)、DROP COLUMN 列名(删除列);

  • 删除表:DROP TABLE 表名;(谨慎操作,删除后无法恢复)。

第18课:使用视图

  • 核心:视图是虚拟表,基于SELECT语句的结果,不存储实际数据;

  • 创建视图:CREATE VIEW 视图名 AS SELECT 语句;

  • 用途:简化复杂查询(将多表联结、子查询封装成视图,直接查询视图即可);

  • 易错:视图可查询,部分数据库支持更新视图(需满足一定条件)。

第19课:使用存储过程

  • 核心:存储过程是一组预编译的SQL语句,封装成一个“函数”,可重复调用;

  • 用途:简化复杂操作、提高效率、保证数据一致性;

  • 基础语法:CREATE PROCEDURE 存储过程名() BEGIN SQL语句; END;(不同数据库语法略有差异);

  • 补充:新手可先了解,工作中常用,不必急于精通。

第20课:使用游标

  • 核心:游标用于处理查询结果集中的单行数据(适合逐行处理,比如循环遍历);

  • 适用场景:存储过程、脚本中,处理批量数据的逐行操作;

  • 易错:游标效率较低,非必要不使用;使用后需关闭、释放游标;

  • 补充:新手可先跳过,后续工作中遇到再深入学习。

第21课:理解事务处理

  • 核心:事务是一组SQL语句,要么全部执行成功,要么全部执行失败(原子性);

  • 关键操作:BEGIN(开始事务)、COMMIT(提交事务,永久生效)、ROLLBACK(回滚事务,撤销操作);

  • 适用场景:插入、更新、删除批量数据(比如转账,扣款和到账必须同时成功);

  • 易错:事务处理需配合支持事务的数据库(比如MySQL的InnoDB引擎)。

第22课:全球化和本地化

  • 核心:处理不同语言、字符集、日期格式的问题;

  • 重点:字符集(比如UTF-8支持中文)、日期格式(不同地区的日期显示方式);

  • 补充:新手了解即可,工作中根据实际需求配置,无需深入。

附录重点补充

  • 书中示例表结构(Customers/Vendors/Products/Orders/OrderItems),做题必看;

  • 常用SQL语句速查(可单独摘抄,方便随时翻看);

  • 不同数据库的语法差异(重点记MySQL/PostgreSQL,与书中示例一致)。