引言:
从今天开始,我们将启动MySQL的学习,本专栏将从零起步带大家学习整个MySQL的知识库,并且本专栏将会从最基础开始不断讲解,直到后面的进阶篇,大家有任何疑问可以在评论区交流学习,谢谢大家
一、MySQL 是什么?
在后端开发中,无论是写注册登录接口、商品系统还是订单管理系统,都离不开数据库。而 MySQL 几乎是最常用的选择之一。
✅ 定义
MySQL 是一种 关系型数据库管理系统(RDBMS) ,使用 SQL(结构化查询语言) 来存取和管理数据。
简单来说:它把数据以表格的形式存储,表与表之间存在关系。
✅ 特点
-
结构化存储:数据以表格形式保存,清晰直观。
-
支持事务(Transaction):保障数据操作的安全性(ACID)。
-
SQL语句操作灵活:可以高效地查询、插入、删除、更新数据。
-
高兼容性:几乎所有编程语言和框架都支持 MySQL(尤其是 Java + Spring Boot)。
-
开源免费:MySQL 社区版完全开源,学习成本低。
二、MySQL 的基本组成结构
在 MySQL 中,最核心的概念就是"表"。
概念 | 说明 | 示例 |
---|---|---|
数据库(Database) | 存放表的集合 | shop_db |
表(Table) | 存放数据的结构化集合 | user、order |
行(Row) | 一条完整的数据记录 | 用户A的信息 |
列(Column) | 某个字段 | username、password |
主键(Primary Key) | 唯一标识某条记录的字段 | user_id |
外键(Foreign Key) | 建立表之间的关系 | order 表中的 user_id |
📌 举例:
CREATE TABLE user (
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50),
password VARCHAR(100),
email VARCHAR(100)
);
这就创建了一个简单的用户表。每条记录就是一个用户。
三、MySQL vs NoSQL 的区别
随着互联网的发展,除了 MySQL 这种关系型数据库外,还出现了很多 NoSQL 数据库,比如 Redis、MongoDB、Cassandra 等。
对比项 | MySQL(SQL) | NoSQL(非关系型) |
---|---|---|
数据结构 | 表(结构化) | 文档、键值、列族或图(非结构化) |
查询语言 | SQL(统一标准) | 各自API(无统一标准) |
事务支持 | 强ACID(安全可靠) | 弱事务或最终一致性 |
扩展方式 | 垂直扩展(加机器性能) | 水平扩展(加机器数量) |
典型代表 | MySQL、PostgreSQL、Oracle | MongoDB、Redis、Neo4j、Cassandra |
使用场景 | 用户系统、订单、财务 | 日志、缓存、社交关系、大数据 |
🌟 举个实际例子:
场景 | 推荐数据库 |
---|---|
用户注册登录(字段固定) | ✅ MySQL |
缓存验证码、Session | ✅ Redis |
存储不定结构的JSON文档 | ✅ MongoDB |
好友推荐(图结构) | ✅ Neo4j |
👉 总结一句话:
MySQL 管"结构化数据",NoSQL 管"灵活数据"。
在实际项目中,通常是 MySQL + Redis + MongoDB 混合使用,各司其职。
四、MySQL 的内部数据模型
MySQL 属于 关系模型(Relational Model) ,它的核心思想是通过 实体-关系(ER) 的方式管理数据。
1️⃣ 实体与表(Entity & Table)
每个实体(如用户、订单)对应一张表。
实体的属性对应表的列。
2️⃣ 主键与外键
-
主键(Primary Key):唯一标识表中的一条记录。
-
外键(Foreign Key):用来建立不同表之间的关系。
例如:
- 用户表(user)和订单表(order)之间通过
user_id
建立一对多关系。
3️⃣ 关系类型
关系类型 | 示例 |
---|---|
一对一(1:1) | 用户与身份证信息 |
一对多(1:N) | 用户与订单 |
多对多(N:M) | 学生与课程 |
五、MySQL 内部的存储引擎
MySQL 的存储方式可以根据需求切换不同的 存储引擎,每种引擎的底层实现方式不一样。
引擎 | 特点 | 使用场景 |
---|---|---|
InnoDB | 支持事务、行级锁、崩溃恢复 | 默认引擎,适合大部分业务系统 |
MyISAM | 不支持事务,速度快 | 日志、统计类业务 |
Memory | 数据存放在内存中,速度极快 | 临时表、缓存 |
CSV | 以CSV文件形式存储 | 数据交换、导入导出场景 |
👉 目前主流项目基本都使用 InnoDB。
六、总结与思维导图(文字版)
MySQL数据库学习总结
│
├─ 一、MySQL简介
│ ├─ 关系型数据库
│ ├─ 使用SQL语言
│ └─ 数据以表形式存储
│
├─ 二、MySQL vs NoSQL
│ ├─ SQL结构化 vs NoSQL非结构化
│ ├─ ACID vs 最终一致性
│ └─ 常用于不同业务场景
│
├─ 三、内部数据模型
│ ├─ 实体-关系模型
│ ├─ 主键、外键
│ └─ 一对多、多对多关系
│
└─ 四、存储引擎
├─ InnoDB(事务)
├─ MyISAM(高性能读)
└─ Memory(内存表)
七、结语
MySQL 是 Java 后端的"地基"。
无论是简单的用户登录系统,还是复杂的分布式电商平台,数据持久化与查询优化 都离不开它。
🌱 建议边学边练:搭建本地 MySQL + Navicat + Spring Boot 项目,做一些增删改查的小功能,你会真正理解数据库的价值。