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

相关推荐
Tansmjs11 小时前
使用Python自动收发邮件
jvm·数据库·python
m0_5613596711 小时前
用Python监控系统日志并发送警报
jvm·数据库·python
橘子师兄11 小时前
C++AI大模型接入SDK—ChatSDK封装
开发语言·c++·人工智能·后端
@ chen11 小时前
Spring事务 核心知识
java·后端·spring
Dxy123931021611 小时前
MySQL INSERT ... ON DUPLICATE KEY UPDATE 与非主键唯一字段
数据库·mysql
aithinker11 小时前
使用QQ邮箱收发邮件遇到的坑 有些WIFI不支持ipv6
java
星火开发设计12 小时前
C++ 预处理指令:#include、#define 与条件编译
java·开发语言·c++·学习·算法·知识
zhousenshan12 小时前
springboot事务管理几种方式
数据库
Hx_Ma1612 小时前
SpringMVC返回值
java·开发语言·servlet
Yana.nice12 小时前
openssl将证书从p7b转换为crt格式
java·linux