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

相关推荐
啊吧怪不啊吧40 分钟前
UU远程协助迎来升级!第一期更新实测
运维·服务器·远程工作
一 乐6 小时前
婚纱摄影网站|基于ssm + vue婚纱摄影网站系统(源码+数据库+文档)
前端·javascript·数据库·vue.js·spring boot·后端
Boilermaker19926 小时前
[Java 并发编程] Synchronized 锁升级
java·开发语言
Cherry的跨界思维6 小时前
28、AI测试环境搭建与全栈工具实战:从本地到云平台的完整指南
java·人工智能·vue3·ai测试·ai全栈·测试全栈·ai测试全栈
alonewolf_997 小时前
JDK17新特性全面解析:从语法革新到模块化革命
java·开发语言·jvm·jdk
一嘴一个橘子7 小时前
spring-aop 的 基础使用(啥是增强类、切点、切面)- 2
java
码事漫谈7 小时前
Protocol Buffers 编码原理深度解析
后端
sheji34167 小时前
【开题答辩全过程】以 中医药文化科普系统为例,包含答辩的问题和答案
java
码事漫谈7 小时前
gRPC源码剖析:高性能RPC的实现原理与工程实践
后端
1.14(java)7 小时前
SQL数据库操作:从CRUD到高级查询
数据库