从零起步学习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 项目,做一些增删改查的小功能,你会真正理解数据库的价值。

相关推荐
颜酱32 分钟前
图结构完全解析:从基础概念到遍历实现
javascript·后端·算法
Coder_Boy_1 小时前
技术让开发更轻松的底层矛盾
java·大数据·数据库·人工智能·深度学习
helloworldandy1 小时前
使用Pandas进行数据分析:从数据清洗到可视化
jvm·数据库·python
invicinble1 小时前
对tomcat的提供的功能与底层拓扑结构与实现机制的理解
java·tomcat
较真的菜鸟1 小时前
使用ASM和agent监控属性变化
java
黎雁·泠崖2 小时前
【魔法森林冒险】5/14 Allen类(三):任务进度与状态管理
java·开发语言
yunfuuwqi2 小时前
OpenClaw✅真·喂饭级教程:2026年OpenClaw(原Moltbot)一键部署+接入飞书最佳实践
运维·服务器·网络·人工智能·飞书·京东云
代码游侠2 小时前
C语言核心概念复习——网络协议与TCP/IP
linux·运维·服务器·网络·算法
你真是饿了2 小时前
6.库制作与原理
linux·服务器
数据知道3 小时前
PostgreSQL 故障排查:如何找出数据库中最耗时的 SQL 语句
数据库·sql·postgresql