数据库是什么
用生活例子讲清:数据存在哪、为什么需要数据库、关系型与 NoSQL、MySQL 与 Oracle/MariaDB 的关系。
本页目录
在学任何 CREATE、SELECT 之前,先建立一张「地图」:数据存在哪?为什么要叫数据库?MySQL 是谁? 本篇不敲复杂命令,读完你应能用自己的话解释「数据库在干什么」。
系列:MySQL 入门到查询 · 第 1 / 17 篇(第 1 天 · 4 月 21 日)
上一篇:总目录
下一篇:Windows 安装 MySQL
总目录:系列索引
环境说明
- 本篇以理解为主,不需要已安装 MySQL
- 预计阅读 12~18 分钟
- 读完建议完成文末「纸面练习」,为第 4 天建表做准备
1. 软件里的「数据」是什么
你在淘宝下单、在游戏里打一局,后台都会产生一堆需要记住的信息:
| 场景 | 需要记住的数据(例子) |
|---|---|
| 淘宝 | 订单号、商品名、价格、收货地址、下单时间 |
| 王者荣耀 | 玩家昵称、段位、对战记录、英雄胜率 |
| 学校教务 | 学号、姓名、课程、成绩、选课时间 |
这些不能只放在「内存里玩完就没了」。
一个反面例子
假设你点外卖,订单只存在于店员手机的内存里:
- 手机没电 / 应用被杀进程
- 订单「消失」,店家找不到,你也查不到
- 客服无法核实,只能重做或退款
业务系统必须有「关机以后还在」的账本。 这个账本,在现代软件里通常就是数据库。
2. 硬盘 vs 内存:数据放哪里
| 硬件 | 保存方式 | 断电后 | 典型用途 |
|---|---|---|---|
| 硬盘 | 以文件形式永久保存 | 数据还在 | 订单、用户资料、成绩 |
| 内存 | 程序运行时的缓存 | 可能被清空 | 正在计算的中间结果 |
一句话:
数据库 = 主要利用硬盘上的文件,把业务数据「长期、有组织」存起来的软件。
它不只是「存文件」,还会负责:
- 按表结构组织数据(便于查询)
- 支持多人同时读写
- 提供 SQL 这种统一查询语言
- 便于备份、恢复、权限控制
浏览器/App
↓ 调用接口
后端程序
↓ 执行 SQL
数据库软件(MySQL)
↓ 管理数据文件
硬盘
3. 数据库的分类(先分清两大类)
关系型数据库
| 特点 | 说明 |
|---|---|
| 数据形态 | 硬盘上的表(类似 Excel:有行有列) |
| 操作语言 | SQL:增、删、改、查 |
| 适合 | 订单、用户、成绩等结构化业务数据 |
| 常见产品 | MySQL、Oracle、MariaDB、SQL Server、DB2、SQLite、PostgreSQL |
好消息:这些产品思路高度相似。精通一款,换另一款通常只剩语法与细节差异,不是从零再学。
NoSQL 数据库
| 特点 | 说明 |
|---|---|
| 常见例子 | Redis(缓存)、MongoDB(文档)等 |
| 操作 | 往往是「键 → 值」等更简单模型,不一定写复杂 SQL |
| 适合 | 缓存、会话、排行榜等 |
常见搭配不是「二选一」:
用户请求
│
├─ 热点数据 → Redis(快,内存)
│
└─ 权威数据 → MySQL(稳,落盘)
本系列只讲关系型里的 MySQL。
4. MySQL 是谁
| 产品 | 一句话 |
|---|---|
| Oracle | 甲骨文公司的数据库,企业里常见,多为收费 |
| MySQL | 现属 Oracle 旗下;社区版广泛免费使用,互联网公司用得极多 |
| MariaDB | MySQL 原作者另起炉灶的产品(名字来自作者女儿 Maria),与 MySQL 非常接近,免费 |
为什么先学 MySQL
- 学习资料多、岗位需求大
- 社区版门槛低,个人电脑就能装
- 学会后,迁移到 MariaDB 或理解其他关系型库都更容易
常用版本:本系列以 MySQL 8.0 为主;旧项目里仍可能见到 5.7。
5. 用一张「表」建立直觉
| id | name | age |
|---|---|---|
| 1 | 张三 | 18 |
| 2 | 李四 | 19 |
| 概念 | 在这张表里是什么 |
|---|---|
| 行(记录) | 一行 = 一个学生 |
| 列(字段) | 一列 = 一种属性(学号、姓名、年龄) |
| 表 | 某一类事物的集合(所有学生) |
| 库(数据库) | 一组相关表的「文件夹」 |
例如「学校库」可以同时放:
students学生表courses课程表scores成绩表
以后你会看到:成绩表里往往只存「学生 id + 课程 id + 分数」,姓名等详细信息去学生表查——这就是关系型的意义之一(少冗余、可关联)。
6. 和 Excel 比,数据库强在哪
| 对比项 | Excel | 数据库(如 MySQL) |
|---|---|---|
| 使用者 | 个人打开改 | 程序、网站并发读写 |
| 查询 | 筛选、透视表 | SQL 灵活组合条件、聚合、多表 |
| 约束 | 弱 | 主键、外键、类型、唯一等 |
| 体量与并发 | 有限 | 面向服务器与高并发设计 |
| 生态 | 依赖本机文件 | 账号、备份、监控、客户端工具成熟 |
Excel 适合个人分析;**网站和软件的「后台账本」**更适合数据库。
7. 学 SQL 的正确心态
- 先会说「我要哪些数据」,再抠语法细节
- 查询可以反复执行,不怕试错
- 从「建一张表 + 查几行」开始,不要一上来就背两百个函数
- 出错时先读错误信息的第一行,往往已经说明原因
纸面练习(安装前就能做)
- 设计一张
phone(手机)表,至少 3 列,例如:id、brand、price - 在表格里填 2 行假数据
- 再设计一张
orders(订单)表,想一想:如何表示「谁买了哪台手机」?需要哪些列? - 一句话回答:如果订单表里每行都把手机品牌、价格抄一遍,会有什么缺点?
提示:信息重复、改价后容易不一致——关系型数据库会用「关联 id」来减少这种冗余。
速查表
| 概念 | 记忆点 |
|---|---|
| 数据库软件 | 管理硬盘数据文件的软件 |
| 关系型 | 表(行×列)+ SQL |
| NoSQL | 常与 MySQL 配合的缓存/文档型数据库 |
| MySQL | 免费社区版常用;与 MariaDB 高度相似 |
| 库/表/行/列 | 文件夹 → 表 → 记录 → 属性 |
常见疑问
问:学会 MySQL 能做什么工作?
后端开发、数据开发、测试、运维、全栈几乎都要碰数据库;MySQL 是最常见起点之一。
问:必须先学编程语言吗?
不必须。SQL 本身就可以先学;本系列大量命令可在 MySQL 客户端里单独完成。
问:为什么叫「关系」型?
可先理解为:表与表可以通过「关联字段」(如学生 id)建立关系,而不是每张表把所有信息抄一遍。
问:数据在数据库里就是一堆 txt 吗?
底层确实是文件,但由数据库引擎按特定格式管理;我们日常用 SQL 操作逻辑上的「表」,而不是手工去改磁盘文件。
小结
- 业务数据要落盘才能在重启后还在——数据库就是在管这件事。
- 关系型用表 + SQL;本系列用 MySQL 8.0。
- 库 → 表 → 行 → 列,和 Excel 直觉类似,但能力面向正式软件。
- 下一篇在 Windows 上安装 MySQL,并第一次登录。
系列导航:总目录 · 上一篇:总目录 · 下一篇:Windows 安装 MySQL