文章背景图

MySQL数据库基础入门

2026-03-11
1
-
- 分钟
|

# MySQL 数据库基础入门:通俗版学习指南

> MySQL 是最流行的开源关系型数据库,掌握它是后端开发的必备技能。本文用通俗的语言讲解 MySQL 核心概念和常用操作,帮你快速入门。

---

## 一、数据库是什么?

### 一句话理解

> 数据库 = 一个"更聪明的 Excel"

| 特点 | Excel | MySQL |

|------|-------|-------|

| 数据量 | 适合小数据 | 支持海量数据 |

| 并发 | 单人使用 | 多人同时使用 |

| 查询 | 手动筛选 | 用 SQL 快速查找 |

| 安全 | 无权限控制 | 有权限管理 |

### 核心特点

- 持久化:数据存在磁盘中,断电不会丢失

- 高效查询:用 SQL 语言快速找数据

- 安全性:权限控制,避免数据乱改

### 数据库分类

| 类型 | 特点 | 代表产品 |

|------|------|----------|

| 关系型数据库(RDBMS) | 数据放在二维表中 | MySQL、Oracle、SQL Server |

| 非关系型数据库(NoSQL) | 灵活的数据模型 | Redis、MongoDB |

> 💡 Web 项目里:MySQL 常用来存用户、订单、商品等数据

---

## 二、MySQL 基本操作

### 登录 / 退出

```bash

# 登录

mysql -u 用户名 -p

# 退出

exit;

```

### 查看 / 使用数据库

```sql

-- 查看所有数据库

SHOW DATABASES;

-- 进入某一个数据库

USE db_name;

```

> 👉 先 USE,后面所有操作才知道你在哪个库

### 创建 / 删除数据库

```sql

-- 创建数据库(utf8mb4 支持中文 + emoji)

CREATE DATABASE test_db DEFAULT CHARSET utf8mb4;

-- 删除数据库(不可恢复!)

DROP DATABASE test_db;

```

---

## 三、表(Table)基础

### 表是什么

| 概念 | Excel 对应 |

|------|-----------|

| 表(Table) | 整个表格 |

| 行(Row) | 一条数据(一个用户) |

| 列(Column) | 字段(用户名、年龄) |

### 常见数据类型

#### 数值类型

```sql

INT -- 整数(最常用)

DECIMAL -- 精确小数(金额一定用它!)

```

#### 字符串类型

```sql

VARCHAR(n) -- 最常用,长度灵活

CHAR(n) -- 固定长度(很少用)

TEXT -- 大文本

```

#### 日期时间类型

```sql

DATETIME -- 最常用:创建时间、下单时间

DATE -- 日期

TIME -- 时间

```

---

## 四、DDL(表结构操作)

> 👉 DDL = 对"表结构"动手

### 创建表

```sql

CREATE TABLE user (

id INT,

username VARCHAR(50),

age INT,

created_at DATETIME

);

```

> 这里只是定义"表长什么样",还没数据

### 查看表结构

```sql

-- 快速看字段

DESC user;

-- 看完整建表语句

SHOW CREATE TABLE user;

```

### 修改表

```sql

-- 添加字段

ALTER TABLE user ADD email VARCHAR(100);

-- 删除字段

ALTER TABLE user DROP email;

```

---

## 五、DML(数据操作)

> 👉 DML = 对"表里的数据"动手

### 插入数据

```sql

-- 推荐写法(指定字段名)

INSERT INTO user (username, age)

VALUES ('tom', 20);

```

> 💡 推荐写字段名,防止顺序出错

### 修改数据

```sql

UPDATE user SET age = 21 WHERE username = 'tom';

```

> ⚠️ 危险:没有 WHERE = 全表修改!

### 删除数据

```sql

DELETE FROM user WHERE id = 1;

```

---

## 六、查询(DQL)⭐ 重点!

> 👉 实际开发 90% 时间在写 SELECT

### 基本查询

```sql

-- 查全部

SELECT * FROM user;

-- 查指定列

SELECT username, age FROM user;

```

### 条件查询

```sql

SELECT * FROM user WHERE age > 18;

```

常用条件:

| 条件 | 说明 |

|------|------|

| = | 精确匹配 |

| BETWEEN | 范围(如 BETWEEN 18 AND 30) |

| IN | 多选(如 IN (1, 2, 3)) |

| IS NULL | 判断空值 |

### 模糊查询

```sql

-- % 表示任意多个字符

SELECT * FROM user WHERE username LIKE 't%'; -- 以 t 开头

SELECT * FROM user WHERE username LIKE '%t%'; -- 包含 t

```

### 排序 + 分页(固定写法!)

```sql

-- 按年龄降序,取前10条

SELECT * FROM user

ORDER BY age DESC

LIMIT 0, 10;

```

> 👉 分页固定写法,面试常问LIMIT 起始位置, 每页条数

---

## 七、聚合与分组

> 👉 用来"做统计"

```sql

-- 按年龄分组,统计每个年龄的人数

SELECT age, COUNT(*)

FROM user

GROUP BY age

HAVING COUNT(*) > 1;

```

| 关键字 | 作用 |

|--------|------|

| WHERE | 分组前过滤 |

| HAVING | 分组后过滤 |

---

## 八、约束(非常重要!)

> 👉 约束 = 给表加规则,防止脏数据

```sql

CREATE TABLE user (

id INT PRIMARY KEY AUTO_INCREMENT, -- 主键 + 自增

username VARCHAR(50) NOT NULL, -- 非空

email VARCHAR(100) UNIQUE, -- 唯一

status INT DEFAULT 1 -- 默认值

);

```

| 约束 | 作用 |

|------|------|

| PRIMARY KEY | 主键:唯一 + 非空 |

| AUTO_INCREMENT | 自增:不用手动传 id |

| NOT NULL | 必须有值 |

| UNIQUE | 不能重复 |

| DEFAULT | 默认值 |

---

## 九、多表关系(理解即可)

| 关系 | 示例 |

|------|------|

| 一对多 | 用户 → 订单(最常见) |

| 多对多 | 学生 → 课程 |

| 一对一 | 用户 → 用户详情 |

```sql

-- 一对多关系

user(id) → orders(user_id)

```

---

## 十、多表查询(JOIN)⭐

```sql

-- 左连接:左表全保留(最常用)

SELECT u.username, o.id

FROM user u

LEFT JOIN orders o ON u.id = o.user_id;

```

| 连接类型 | 说明 |

|----------|------|

| LEFT JOIN | 左表全保留 |

| RIGHT JOIN | 右表全保留 |

| INNER JOIN | 只保留匹配的 |

---

## 十一、子查询

> 👉 一个查询的结果,作为另一个查询的条件

```sql

-- 查询有订单的用户

SELECT * FROM user

WHERE id IN (SELECT user_id FROM orders);

```

---

## 十二、视图(了解)

> 👉 视图 = 保存好的 SQL(不存数据)

```sql

-- 创建视图

CREATE VIEW v_user AS

SELECT id, username FROM user;

-- 使用视图

SELECT * FROM v_user;

```

---

## 十三、备份

```bash

# 备份数据库

mysqldump -u username -p database_name > backup_file.sql

# 恢复数据库

mysql -u username -p database_name < backup_file.sql

```

---

## 学习建议

1. 先掌握基础:DDL、DML、DQL 是核心

2. 多练习 SELECT:实际开发 90% 时间在写查询

3. 注意 WHERE 条件:UPDATE 和 DELETE 一定要带 WHERE!

4. 理解约束:主键、唯一、非空是设计表的基础

5. 分页固定写法ORDER BY ... LIMIT ... 面试常考

---

## 下一步学习路径

到这里为止,就是 MySQL 入门必须掌握的内容

1️⃣ 索引(B+Tree,面试重点)

2️⃣ 事务(ACID 特性)

3️⃣

4️⃣ SQL 优化

评论交流

文章目录