码上问学问代码之理,学编程之道

课程一 · MySQL 数据库基础与实战

先把「数据存哪儿、怎么查」这层打牢。10 章内容系统覆盖 MySQL 核心语法,每个语法点都落在「古典文学网」的真实表上——你写的每一条查询,都是这个项目里真实要用的。学完能独立建库建表、写多表统计、并且知道怎么防 SQL 注入。

课程定位

32 学时 · 理论 12 + 上机 20
为什么先学数据库很多初学者一上来就写后端,结果 ORM 里的每一行都像黑盒:为什么这个查询慢?为什么这条数据查不出来?因为他不了解底下那张表长什么样、索引是怎么用的。先花 4 周把数据库打牢,后面写 Flask 时,你会知道每一句 db.session.query(...) 背后到底发生了什么。

10 章导航

点击进入对应章节

第 1 章 · 数据库与 MySQL 入门

关系型数据库是什么、MySQL 装与连、命令行与 Navicat、SQL 的四大分类(DDL/DML/DQL/DCL)。

安装连接SQL 分类

第 2 章 · 数据查询基础

SELECT、DISTINCT、WHERE、ORDER BY、LIMIT——把「从表里取数」这件事讲到位。

SELECTWHERE排序分页

第 3 章 · 条件、运算符与模糊查询

AND/OR/NOT、LIKE 与通配符、IN、BETWEEN、别名与运算符。搜索框背后的原理就在这。

LIKEIN/BETWEEN别名

第 4 章 · 聚合函数与分组

COUNT/SUM/AVG/MIN/MAX、GROUP BY、HAVING、NULL 处理。统计类需求全靠这一章。

聚合GROUP BYNULL

第 5 章 · 多表连接与子查询

INNER/LEFT/RIGHT/CROSS JOIN、自连接、UNION、EXISTS、ANY/ALL、子查询。全栈里最重要的一章。

JOINUNION子查询

第 6 章 · 数据的增删改

INSERT INTO、INSERT…SELECT、UPDATE、DELETE、CASE 表达式。写数据、改数据、删数据。

INSERTUPDATECASE

第 7 章 · 表结构、约束与索引

CREATE/ALTER/DROP、数据类型、主键外键唯一非空默认检查、索引、AUTO_INCREMENT、日期时间。

约束索引数据类型

第 8 章 · 视图与存储过程

创建/使用/删除视图、存储过程入门。把复杂查询「打包」成一个可复用的名字。

视图存储过程

第 9 章 · 项目数据库设计实战 重点

需求分析 → ER 图 → 三范式 → 物理建表:完整设计「古典文学网」7 张表,并落成建库脚本。

ER 图三范式建表实战

第 10 章 · 安全与 Python 连接

SQL 注入原理与预处理语句、用户与权限、备份恢复、用 PyMySQL 连接 MySQL 做增删改查。

SQL 注入预处理PyMySQL

贯穿项目:古典文学网数据库

7 张表 + 1 视图

7 张表

user 用户 · category 分类 · article 作品 · comment 书评(自关联实现楼中楼) · favorite 收藏 · user_like 点赞 · banner 首页轮播。

1 个视图

v_article_list:把作品与分类名一次 LEFT JOIN 出来(含 category_name、浏览量、点赞数、是否推荐),供作品列表与详情页直接查。

种子数据

内置 5 个分类、6 篇唐诗宋词元曲(静夜思、春望、念奴娇·赤壁怀古……)、示例用户与书评,导入即可开始练习查询。

一键建库:导入脚本 pyweb/sql/hiwen.sql 即得完整示例库;每章末尾的练习查询都基于它,做完直接对答案。

怎么学这门课

看得懂 ≠ 写得出
节奏做什么
每章开篇先读「先讲为什么」,搞清这个语法解决什么问题,再往下看。
每个示例在 Navicat/DBeaver 或命令行里亲手敲一遍,对上运行结果再继续。
章末练习先合上参考答案自己写;写不出来再展开对照,看完重做一遍。
迁移练习把学到的方法搬到「红影赏析」(电影主题),检验能否举一反三。