🦏 MySQL即学即用
照着《MySQL即学即用》(莫振杰 著,图灵教育·计算机通识精品课,人民邮电出版社;基于 MySQL 8 标准编写)做的自学笔记 —— 封面上那句话就是定位:零基础快速上手数据库开发。它是本站数据库线的入门那一本:数据库基础 讲原理(为什么拆表、范式与事务),MySQL必知必会 是「30 章 30 课」的手册、讲得快命令密集;这一本反着来——按知识点排,一个函数一节,界面和语法一起讲,连「怎么装 MySQL」「Navicat 上点哪里」都写成一章。全书四个部分:基础语法(第 1~9 章,安装与 Navicat、SQL 语法与数据类型、单表查询、统计、模糊与子查询、内置函数、增删改、库表操作、列的属性);高级技术(第 10~18 章,多表查询、视图、索引、存储程序、游标、事务、安全管理、数据备份);实战案例(第 19 章,一套案例把前面串起来)。逐节一篇,「本章练习」并进章末,合计 86 篇。沙箱是 Windows / Python 3.13,没有 MySQL 服务端——Demo 全部跑在 Python 自带的 SQLite 上,SQL 真执行,行数、合计、排序都是当场算的;MySQL 的内置函数用垫片注册同名函数让教材的 SQL 几乎原样能敲,MySQL 独有语法逐处标注差异,不装作一样。样例库自造六张表(班级/学生/成绩/商品/订单/订单明细),数据量刻意做小到能手算。每篇五段:若干节正文+动手 Demo+30 秒实验+常见误区+自测三问。
内容来自我的 Obsidian 自学笔记 · 全书 19 章 86 篇已全部写完 · 全书完结 🎉
第1章 数据库简介
数据库是什么
文件存数据的三处不够用(查得慢、并发乱…
安装 MySQL
装完是一个服务端(mysqld,占 33…
安装 Navicat for MySQL
Navicat 是客户端不是数据库,收费…
使用 Navicat for MySQL
连接四个格子(主机/端口/用户/密码)…
教程说明
注释只用 -- 与 /* */(# 是…
第2章 SQL语法
第3章 查询操作
select 语句简介
select 只做两件事:挑列、挑行,这…
使用别名:as
列别名、表别名、特殊别名要双引号;as…
条件子句:where
六个比较运算符、and/or/not、b…
排序子句:order by
asc 能省 desc 不能、多列排序的…
限制行数:limit
limit n 是「最多」、limit…
去重处理:distinct
distinct 去的是整行组合(3 行…
第4章 数据统计
算术运算
四则运算用在 select 里、优先级与…
聚合函数
五个聚合函数、count 的三种写法(1…
分组子句:group by
group by 按列归堆一堆一行、14…
指定条件:having
where 筛行 having 筛组、判…
子句顺序
书写顺序七个位置、执行顺序 select…
第5章 高级查询
模糊查询:like
% 顶任意长度、_ 只顶一个字符(_球…
随机查询:rand()
rand() 每次不同、rand(7)…
子查询
单值子查询(高于平均 6 人)、子查询当…
第6章 内置函数
内置函数简介
函数三要素、能放在 select/whe…
数学函数
abs 与 sign、mod 负数余数两…
字符串函数
length 这里数字符(张伟 2)而…
时间函数
curdate/curtime/now…
排名函数
row_number 必连续、rank…
加密函数
md5 32 位/sha1 40 位、同…
系统函数
sqlite_version() 是 3…
其他函数
cast 类型名两边不同、CAST(3.…
第7章 数据修改
数据修改简介
insert/update/delete…
插入数据:insert
列名写全才不怕表结构变、省略列名必须按序…
更新数据:update
set 与 where 各管一半、多列一…
删除数据:delete
delete 删行不删列、外键拦住删有学…
第8章 表的操作
表的操作简介
库/表/数据三层与前面七章都在最底层、D…
数据库的操作
create/show/alter/dr…
创建表
每一列三样东西(名字、类型、属性)、五个…
查看表
show tables/show cre…
修改表
rename to 改表名(视图会跟、硬…
复制表
create table … like…
删除表
drop table 表与数据一起没且没…
第9章 列的属性
列的属性简介
每列三样(名字、类型、属性)、七个会拦数…
默认值
默认值只在语句没提这一列时生效(显式给…
非空
非空拦 NULL 不拦空串(空串 LEN…
自动递增
AUTO_INCREMENT 搬过来不报…
条件检查
CHECK 结果为假才拦(能用 AND/…
唯一键
UNIQUE 不拦 NULL 且允许多个…
主键
INTEGER PRIMARY KEY…
外键
FOREIGN KEY 写在表级、本沙箱…
注释
MySQL 的 COMMENT 在这里被…
操作已有的表
加列能带默认值且老行补默认、加 CHEC…
第10章 多表查询
多表查询简介
数据按一件事一张表拆开所以跨表问题要连表…
集合运算
UNION 去重 5 行而 UNION…
内连接
join on 与逗号加 where 等…
外连接
LEFT JOIN 保证左表每行都出现…
笛卡儿积连接
笛卡儿积行数是两张表的乘积、JOIN 不…
自连接
自连接是同一张表两个别名(不起别名报 n…
第11章 视图
创建视图
视图存的是查询不是数据所以基表一变它就变…
查看视图
视图记在 sqlite_master 里…
修改视图
ALTER VIEW 这里没有(MySQ…
删除视图
drop view 只删规则不丢数据(1…
多表视图
视图里能连表能聚合、价值是口径统一而不只…
第12章 索引
索引简介
索引是按某列排好序的目录(能比大小 +…
创建索引
create index 索引名 on…
查看索引
PRAGMA index_list 五列…
删除索引
drop index 索引名只给名字(全…
第13章 存储程序
存储程序简介
存储程序是四样东西的总称:存储过程(ca…
存储过程
create procedure 名字(…
存储函数
create function 名字(参…
触发器
create trigger 名字 be…
事件
create event 名字 on s…
第14章 游标
第15章 事务
第16章 安全管理
第17章 数据备份
数据备份简介
事务救不了「改错了」:commit 之后…
数据库的备份与还原
mysqldump -u 用户 -p 库…
表的备份与还原
只备几张表:mysqldump 库名后面…