跳到主要内容

01 认识数据库与 MySQL

📖 本节导读

学完本节你将掌握:

  • 什么是数据、数据库、数据库管理系统(DBMS),以及它们之间的关系
  • 为什么专业开发不用 Excel 或文本文件存数据
  • 关系型数据库中"表、行、列"的核心概念
  • MySQL 和 SQL 分别是什么,以及它们之间的关系

一、从生活出发:什么是数据?

数据(Data),简单说就是"被记录下来的信息"。它无处不在:

  • 你的手机通讯录里,每个联系人的姓名和电话是数据
  • 你网购时,订单号、商品名、价格、收货地址是数据
  • 学校里,每个学生的学号、姓名、各科成绩也是数据

只要是需要"记下来、以后还要用"的信息,都可以称为数据。

二、什么是数据库?

数据库(Database,简称 DB),顾名思义就是"存放数据的仓库"。

打个比方:

如果把一条条数据比作一本本书,那么数据库就是图书馆——它不仅把书存起来,还把书分类、编号、摆放整齐,让你想找哪本书时能快速找到。

数据库的核心价值不只是"存",更在于有组织地存,方便后续的查找、修改和统计。

三、什么是数据库管理系统(DBMS)?

光有仓库还不够,还得有人管理仓库。数据库管理系统(Database Management System,简称 DBMS) 就是"管理数据库的软件"。

继续用图书馆类比:

类比对象数据库世界中的角色
图书馆的书数据
整个图书馆数据库
图书管理员 + 借阅系统数据库管理系统(DBMS)
你(借书的人)使用数据的程序或用户

你不能直接冲进书库乱翻,而是告诉管理员"我要借《三体》",管理员帮你找出来。同理,程序不会直接操作硬盘上的数据文件,而是把需求告诉 DBMS,由它来完成存取。

我们即将学习的 MySQL,就是世界上最流行的 DBMS 之一。

四、为什么不用 Excel 或文本文件存数据?

很多新手会问:Excel 也能存表格数据,记事本也能记信息,为什么还要学数据库?

在数据量小、只有你一个人用的时候,Excel 确实够用。但一旦做真实的软件系统,问题就来了:

1. 数据量瓶颈

  • Excel 一张表最多约 104 万行,而一个电商网站的订单轻松上亿条
  • 数据库可以存储海量数据,并且在千万级数据中依然能快速查询

2. 多人同时操作

  • Excel 文件被一个人打开编辑时,别人往往只能"只读"
  • 数据库天生支持成千上万人同时读写,比如双十一时无数人同时下单

3. 数据安全与一致性

  • 文本文件谁都能改,改错了、改乱了很难发现
  • 数据库可以设置权限(谁能看、谁能改),还能保证转账这类操作"要么全成功,要么全失败"(后面章节会讲的"事务")

4. 复杂查询能力

  • 想在 Excel 里查"数学成绩前 10 名且英语及格的学生",需要手动筛选排序
  • 在数据库里,一条 SQL 语句就能搞定,还能瞬间完成

5. 程序对接

  • 网站、App 背后的程序需要随时读写数据,数据库提供了标准接口,程序可以直接"对话"

一句话总结:Excel 是个人办公工具,数据库是为"大量数据 + 多人并发 + 程序访问"而生的专业系统。

五、关系型数据库:表、行、列

MySQL 属于关系型数据库。别被"关系"这个词吓到,它的核心思想非常直观:用一张张二维表格来组织数据——这一点和 Excel 表格长得很像,所以你可以借助 Excel 来理解。

1. 表(Table)

一张表存放一类数据。比如"学生表"专门存学生信息,"课程表"专门存课程信息。就像 Excel 文件里的一个个工作表(Sheet)。

2. 列(Column)

表中的每一列代表一个属性(也叫"字段")。比如学生表可能有:学号、姓名、性别、出生日期这几列。相当于 Excel 表格的表头。

3. 行(Row)

表中的每一行代表一条完整的记录。比如学生表中的一行,就是某一个学生的全部信息。

用一张"学生表"直观感受一下:

+--------+--------+------+------------+
| 学号 | 姓名 | 性别 | 出生日期 |
+--------+--------+------+------------+
| 2024001| 张三 | 男 | 2006-03-15 |
| 2024002| 李四 | 女 | 2006-07-22 |
| 2024003| 王五 | 男 | 2005-12-01 |
+--------+--------+------+------------+
  • 这就是一张
  • "学号、姓名、性别、出生日期"是 4 个
  • 张三、李四、王五各占一,每行是一条记录

4. "关系"到底指什么?

不同的表之间可以通过某个字段关联起来。比如"成绩表"里存学号和分数,通过"学号"就能关联到"学生表",查出这个分数是谁考的。表与表之间的这种关联,就是"关系型"的由来。后面学到"多表连接查询"时你会深刻体会到它的强大。

六、MySQL 是什么?

MySQL 是一款开源、免费的关系型数据库管理系统,诞生于 1995 年,目前由 Oracle(甲骨文)公司维护。

为什么 MySQL 这么流行?

  • 免费开源:社区版完全免费,源代码公开,个人和企业都能零成本使用
  • 性能可靠:经过近 30 年打磨,稳定性和性能久经考验
  • 简单易学:安装方便,文档丰富,是新手入门数据库的首选
  • 生态强大:几乎所有编程语言(Java、Python、PHP、Go 等)都有成熟的 MySQL 驱动
  • 经典组合:著名的 LAMP 技术栈(Linux + Apache + MySQL + PHP)曾支撑起半个互联网

哪些公司在用?

Facebook(Meta)、Twitter(X)、YouTube、Netflix、Airbnb,以及国内的淘宝、腾讯、美团、字节跳动等大量互联网公司,都在生产环境中大规模使用 MySQL 或其衍生版本。可以说,你每天用的 App 背后,很可能就有 MySQL 在默默工作。

七、SQL 是什么?和 MySQL 什么关系?

SQL(Structured Query Language,结构化查询语言) 是操作关系型数据库的标准语言。你想对数据库做任何事——建表、存数据、查数据、改数据——都要用 SQL 来"下命令"。

比如,下面这条 SQL 的意思是"查询学生表里的所有数据":

SELECT * FROM students;

SQL 和 MySQL 的关系,可以这样类比:

SQL 是"普通话",MySQL 是"会听普通话的人"。 你用 SQL 这门语言下达指令,MySQL 这个软件负责听懂并执行。

除了 MySQL,还有 Oracle、SQL Server、PostgreSQL 等其他关系型数据库,它们也都"听得懂" SQL(各家有些方言差异,但核心语法一致)。所以学好 SQL,换到其他数据库也能快速上手,一举多得。

八、关系型 vs 非关系型(了解即可)

数据库世界里还有一类非关系型数据库(NoSQL),如 Redis、MongoDB。它们不用二维表格存数据,而是用键值对、文档等更灵活的结构,常用于缓存、日志等特定场景。

新手阶段不必深究,只需知道:

  • 关系型(MySQL 等):结构严谨,适合存储需要精确管理的核心业务数据,是绝大多数系统的"主力库"
  • 非关系型(Redis、MongoDB 等):结构灵活、速度快,通常作为关系型数据库的"辅助搭档"

我们这本教程专注于关系型数据库的代表——MySQL。

⚠️ 新手常见坑

  • 把 MySQL 和 SQL 混为一谈:SQL 是语言,MySQL 是软件。说"我会 SQL"和"我会用 MySQL"是两件相关但不同的事。
  • 以为数据库就是一个文件:数据库是由 DBMS 管理的一整套系统,不要用"打开一个文件"的思路去理解它。
  • 认为学了 MySQL 就不用学 SQL:恰恰相反,学 MySQL 的过程 90% 都是在学 SQL。

📝 小结

  • 数据是被记录的信息,数据库是有组织存放数据的仓库,DBMS 是管理数据库的软件
  • Excel/文本文件无法应对海量数据、多人并发、权限安全等需求,所以需要专业数据库
  • 关系型数据库用组织数据:是属性,是一条记录,表与表之间可以关联
  • MySQL 是最流行的开源关系型 DBMS;SQL 是操作它的标准语言
  • 关系型数据库是主力,非关系型数据库是特定场景的补充

✍️ 练习题

1. 用自己的话说说:数据、数据库、DBMS 三者是什么关系?

参考答案

数据是被记录下来的信息;数据库是有组织地存放大量数据的"仓库";DBMS 是管理这个仓库的软件(如 MySQL),负责数据的存储、查询、修改、删除和安全控制。三者关系:DBMS 管理数据库,数据库中存放数据。

2. 请列举至少 3 个"用数据库而不用 Excel 存数据"的理由。

参考答案

① 数据库能存储海量数据(亿级),Excel 单表约 104 万行封顶;② 数据库支持大量用户同时读写,Excel 多人编辑受限;③ 数据库有权限控制和事务机制,数据更安全一致;④ 数据库支持用 SQL 做复杂高效的查询;⑤ 程序可以方便地通过标准接口访问数据库。(答出 3 条即可)

3. 在下面这张表中,指出什么是"表"、什么是"行"、什么是"列":一张"课程表"包含课程编号、课程名、学分三项信息,其中记录了"C01 / 高等数学 / 4" 等 5 门课程。

参考答案

整张"课程表"是一个表(Table);"课程编号、课程名、学分"是 3 个列(Column,即字段);"C01 / 高等数学 / 4"这样一条完整的课程记录是一行(Row),该表共有 5 行。

4. 判断对错:MySQL 是一种编程语言。

参考答案

错。MySQL 是一款数据库管理系统(软件),不是语言。操作 MySQL 所使用的语言叫 SQL(结构化查询语言)。

5. SQL 是某一个数据库专用的语言吗?学会了 SQL 对使用其他数据库有帮助吗?

参考答案

SQL 不是某个数据库专用的,而是关系型数据库的标准语言。Oracle、SQL Server、PostgreSQL 等主流关系型数据库都支持 SQL(各有少量方言差异)。因此学好 SQL 后,切换到其他关系型数据库也能很快上手。


🏠 返回目录 | 下一节 ➡