MySQL

数据库是什么

用生活例子讲清:数据存在哪、为什么需要数据库、关系型与 NoSQL、MySQL 与 Oracle/MariaDB 的关系。

在学任何 CREATE、SELECT 之前,先建立一张「地图」:数据存在哪?为什么要叫数据库?MySQL 是谁? 本篇不敲复杂命令,读完你应能用自己的话解释「数据库在干什么」。

系列:MySQL 入门到查询 · 第 1 / 17 篇(第 1 天 · 4 月 21 日)
上一篇:总目录
下一篇:Windows 安装 MySQL
总目录:系列索引

环境说明

  • 本篇以理解为主,不需要已安装 MySQL
  • 预计阅读 12~18 分钟
  • 读完建议完成文末「纸面练习」,为第 4 天建表做准备

1. 软件里的「数据」是什么

你在淘宝下单、在游戏里打一局,后台都会产生一堆需要记住的信息:

场景需要记住的数据(例子)
淘宝订单号、商品名、价格、收货地址、下单时间
王者荣耀玩家昵称、段位、对战记录、英雄胜率
学校教务学号、姓名、课程、成绩、选课时间

这些不能只放在「内存里玩完就没了」。

一个反面例子

假设你点外卖,订单只存在于店员手机的内存里:

  1. 手机没电 / 应用被杀进程
  2. 订单「消失」,店家找不到,你也查不到
  3. 客服无法核实,只能重做或退款

业务系统必须有「关机以后还在」的账本。 这个账本,在现代软件里通常就是数据库。

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 旗下;社区版广泛免费使用,互联网公司用得极多
MariaDBMySQL 原作者另起炉灶的产品(名字来自作者女儿 Maria),与 MySQL 非常接近,免费

为什么先学 MySQL

  1. 学习资料多、岗位需求大
  2. 社区版门槛低,个人电脑就能装
  3. 学会后,迁移到 MariaDB 或理解其他关系型库都更容易

常用版本:本系列以 MySQL 8.0 为主;旧项目里仍可能见到 5.7。

5. 用一张「表」建立直觉

idnameage
1张三18
2李四19
概念在这张表里是什么
行(记录)一行 = 一个学生
列(字段)一列 = 一种属性(学号、姓名、年龄)
表某一类事物的集合(所有学生)
库(数据库)一组相关表的「文件夹」

例如「学校库」可以同时放:

  • students 学生表
  • courses 课程表
  • scores 成绩表

以后你会看到:成绩表里往往只存「学生 id + 课程 id + 分数」,姓名等详细信息去学生表查——这就是关系型的意义之一(少冗余、可关联)。

6. 和 Excel 比,数据库强在哪

对比项Excel数据库(如 MySQL)
使用者个人打开改程序、网站并发读写
查询筛选、透视表SQL 灵活组合条件、聚合、多表
约束弱主键、外键、类型、唯一等
体量与并发有限面向服务器与高并发设计
生态依赖本机文件账号、备份、监控、客户端工具成熟

Excel 适合个人分析;**网站和软件的「后台账本」**更适合数据库。

7. 学 SQL 的正确心态

  1. 先会说「我要哪些数据」,再抠语法细节
  2. 查询可以反复执行,不怕试错
  3. 从「建一张表 + 查几行」开始,不要一上来就背两百个函数
  4. 出错时先读错误信息的第一行,往往已经说明原因

纸面练习(安装前就能做)

  1. 设计一张 phone(手机)表,至少 3 列,例如:id、brand、price
  2. 在表格里填 2 行假数据
  3. 再设计一张 orders(订单)表,想一想:如何表示「谁买了哪台手机」?需要哪些列?
  4. 一句话回答:如果订单表里每行都把手机品牌、价格抄一遍,会有什么缺点?

提示:信息重复、改价后容易不一致——关系型数据库会用「关联 id」来减少这种冗余。

速查表

概念记忆点
数据库软件管理硬盘数据文件的软件
关系型表(行×列)+ SQL
NoSQL常与 MySQL 配合的缓存/文档型数据库
MySQL免费社区版常用;与 MariaDB 高度相似
库/表/行/列文件夹 → 表 → 记录 → 属性

常见疑问

问:学会 MySQL 能做什么工作?
后端开发、数据开发、测试、运维、全栈几乎都要碰数据库;MySQL 是最常见起点之一。

问:必须先学编程语言吗?
不必须。SQL 本身就可以先学;本系列大量命令可在 MySQL 客户端里单独完成。

问:为什么叫「关系」型?
可先理解为:表与表可以通过「关联字段」(如学生 id)建立关系,而不是每张表把所有信息抄一遍。

问:数据在数据库里就是一堆 txt 吗?
底层确实是文件,但由数据库引擎按特定格式管理;我们日常用 SQL 操作逻辑上的「表」,而不是手工去改磁盘文件。

小结

  1. 业务数据要落盘才能在重启后还在——数据库就是在管这件事。
  2. 关系型用表 + SQL;本系列用 MySQL 8.0。
  3. 库 → 表 → 行 → 列,和 Excel 直觉类似,但能力面向正式软件。
  4. 下一篇在 Windows 上安装 MySQL,并第一次登录。

系列导航:总目录 · 上一篇:总目录 · 下一篇:Windows 安装 MySQL

相关阅读

全部文章 →
← 返回列表更多「MySQL」