Skip to content

关系型数据库(MySQL)

MySQL 是最适合零基础建立“数据表”概念的数据库之一。
如果你以后要做用户系统、订单系统、题库、文章、商城,MySQL 几乎都会出现。

为什么需要数据库

如果你只把数据写在 Python 变量里,程序一结束,数据通常就没了。
而数据库的作用,就是把数据稳定地保存下来,并且让你后面可以继续:

  • 新增数据
  • 修改数据
  • 删除数据
  • 查询数据

先建立四个最重要的概念

  • 数据库:可以理解成一个总仓库
  • 表:仓库中的一张分类表
  • 行:表里的一条记录
  • 列:表里的一个字段

例如,一张学生表可能长这样:

idnameagecity
1小明18北京
2小红19上海

这里:

  • idnameagecity 是列
  • 每个学生是一行

第一步:创建数据库

sql
CREATE DATABASE study_db;

这条语句的意思是:创建一个叫 study_db 的数据库。

第二步:进入数据库

sql
USE study_db;

这一步很像你在文件系统里先 cd 进入某个目录,后面的表操作都会在这个数据库里进行。

第三步:创建表

sql
CREATE TABLE students (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(50) NOT NULL,
  age INT,
  city VARCHAR(50)
);

这张表里:

  • id 是主键
  • AUTO_INCREMENT 表示自动递增
  • name 不能为空

第四步:插入数据

sql
INSERT INTO students (name, age, city)
VALUES ('小明', 18, '北京');

再插入一条:

sql
INSERT INTO students (name, age, city)
VALUES ('小红', 19, '上海');

第五步:查询数据

查询全部数据:

sql
SELECT * FROM students;

你会得到类似这样的结果:

text
+----+------+-----+------+
| id | name | age | city |
+----+------+-----+------+
|  1 | 小明 |  18 | 北京 |
|  2 | 小红 |  19 | 上海 |
+----+------+-----+------+

有条件地查:

sql
SELECT name, age FROM students WHERE age >= 18;

第六步:更新数据

sql
UPDATE students
SET city = '深圳'
WHERE id = 1;

这条语句的意思是:把 id = 1 这一行的城市改成深圳。

第七步:删除数据

sql
DELETE FROM students WHERE id = 2;

删除前一定要加条件。
如果你写成:

sql
DELETE FROM students;

那整张表的数据都会被删掉。

字段类型怎么理解

你会经常看到这些字段类型:

  • INT:整数
  • VARCHAR(50):最多 50 个字符的文本
  • TEXT:更长的文本
  • DATETIME:日期时间

字段约束是什么

约束是为了保证数据质量。常见约束有:

  • PRIMARY KEY:主键,唯一标识一条记录
  • NOT NULL:不能为空
  • UNIQUE:不能重复
  • DEFAULT:默认值

表索引是什么

索引可以理解成书的目录。
没有目录时,你要一页一页翻;有目录时,你能更快定位内容。

数据库也是一样:

  • 没有索引:查询慢
  • 有索引:查询快

但索引也不是越多越好,因为新增和修改数据时也要维护索引。

表关系是什么

真实项目里通常不止一张表。

常见关系:

  • 一对一
  • 一对多
  • 多对多

例如:

  • 一个班级对应多个学生,是一对多
  • 一个学生可选多门课程,一门课程也能被多个学生选,是多对多

高级查询会学什么

当你把基础增删改查练熟后,下一步会继续接触:

  • 排序 ORDER BY
  • 分组 GROUP BY
  • 聚合函数 COUNTSUMAVG
  • 多表联查 JOIN

事务为什么重要

事务适合这种场景:

  • A 扣钱
  • B 加钱

这两个动作要么一起成功,要么一起失败。
如果只成功一半,数据就错了。

所以事务的核心价值是:保证一组操作的一致性。

零基础学习建议

学 MySQL 时,不要一开始就背所有 SQL 语法。
最有效的顺序是:

  1. 创建数据库
  2. 创建表
  3. 插入数据
  4. 查询数据
  5. 更新数据
  6. 删除数据
  7. 再学约束、关系、索引、事务

Built with VitePress.