从零起步学习MySQL || 第一章:初识MySQL及深入理解内部数据类型

引言:

从今天开始,我们将启动MySQL的学习,本专栏将从零起步带大家学习整个MySQL的知识库,并且本专栏将会从最基础开始不断讲解,直到后面的进阶篇,大家有任何疑问可以在评论区交流学习,谢谢大家

一、MySQL 是什么?

在后端开发中,无论是写注册登录接口、商品系统还是订单管理系统,都离不开数据库。而 MySQL 几乎是最常用的选择之一。

✅ 定义

MySQL 是一种 关系型数据库管理系统(RDBMS) ,使用 SQL(结构化查询语言) 来存取和管理数据。

简单来说:它把数据以表格的形式存储,表与表之间存在关系。

✅ 特点

  1. 结构化存储:数据以表格形式保存,清晰直观。

  2. 支持事务(Transaction):保障数据操作的安全性(ACID)。

  3. SQL语句操作灵活:可以高效地查询、插入、删除、更新数据。

  4. 高兼容性:几乎所有编程语言和框架都支持 MySQL(尤其是 Java + Spring Boot)。

  5. 开源免费: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 项目,做一些增删改查的小功能,你会真正理解数据库的价值。

相关推荐
郑州光合科技余经理1 分钟前
海外版外卖系统架构:订单怎么流转、权限怎么分
java·开发语言·前端·系统架构·uni-app·php·ai编程
longxiaozhang63 分钟前
C#异常处理:程序出错了怎么办?
开发语言·数据库·c#
提线木偶17 分钟前
CORS 到底谁说了算?一份跨域配置的避坑指南
前端·后端
NineData22 分钟前
DTCC 2026 NineData 叶正盛:如何统一管理人与 AI Agent 的数据访问行为
数据库·人工智能·sql·oracle·agent·ninedata·dtcc
一入程序无退路31 分钟前
Navicat导出Excel格式表名表结构
数据库·excel
记忆张量MemTensor32 分钟前
MemOS Skill 上线|一句话即可接入 MemOS Cloud
大数据·数据库·人工智能·typescript·开源
一木 之林39 分钟前
五、C++新特性、关键字与编译原理
java·jvm·算法
han_hanker43 分钟前
新手公司项目实战
java·maven
朋友圈自动点赞工具1 小时前
NAS游戏库自动下载新方案,Questarr部署教程
服务器·数据库·游戏·科技资讯
vHelios1 小时前
【电商项目】商品搜索开发复盘(3):搜索与封装实现逻辑思考与编写
java