# P09 09. 基础-SQL-DDL-表操作-修改&删除

> 本页是学习笔记，不等同于视频逐字稿。原声字幕未取得（匿名接口字幕轨为空且需登录，未使用任何账号），也没有逐句讲解记录；讲义只按节与页码对应，切点未逐句确证。

> 以同版讲义的公开镜像核对章节与页码（镜像非官方出品）；非逐字稿，示例为原创补充。

## P09 09. 基础-SQL-DDL-表操作-修改&删除

- 原视频：https://www.bilibili.com/video/BV1Kr4y1i7ru/?p=9（p=9），时长 10:24
- 讲义：2.3.2.4 表操作-修改 / 2.3.2.5 表操作-删除 p24–25（公开镜像；按主题对应，切点 notexact）

- 本集练习数据：practice/p09.sql（先执行，再对照小例）

### 一句话理解

表建好后需求会变：加字段、改类型、改字段名、删字段、改表名，最后还有删表。这一集把这些 ALTER 和 DROP 走一遍。

### 步骤

1. 加字段：`ALTER TABLE 表名 ADD 字段 类型 [COMMENT ...]`。画面演示给 emp 加 `nickname varchar(20)`，执行后提示 Query OK。
2. 改字段类型用 MODIFY，改字段名用 CHANGE（CHANGE 要写旧名和新名两遍），删字段用 DROP 字段名，改表名用 `RENAME TO`。
3. 画面里 `ALTER TABLE emp RENAME TO employee;` 之后，再 `DESC emp` 就报 Table doesn't exist，`SHOW TABLES` 里只剩 employee——名字变了，旧名立刻失效。
4. 删表用 `DROP TABLE [IF EXISTS] 表名`，结构和数据一起没；`TRUNCATE TABLE 表名` 只清数据、保留结构，效果像“删掉再建一张空表”。

### SQL 示例

```
CREATE TEMPORARY TABLE emp_alter (id INT, name VARCHAR(10));
ALTER TABLE emp_alter ADD nickname VARCHAR(20) COMMENT '昵称';
ALTER TABLE emp_alter CHANGE nickname nick VARCHAR(20);
DESC emp_alter;
```

说明：先建一张两列的小表，再加 `nickname`，然后把它改名成 `nick`。最后的 `DESC` 应看到 3 行，第三行 Field 是 `nick` 而不是 `nickname`，这就是 CHANGE 的效果。用 TEMPORARY 表练习，断开连接自动消失，不留垃圾。

### 易错点

- CHANGE 写成 `CHANGE 新名 类型`，少了旧名，报语法错误。顺序是旧名、新名、类型。
- 以为 TRUNCATE 能回滚或能只删部分行。它清空整表，不能带 WHERE。
- 生产上直接 DROP TABLE，数据用普通 SQL 找不回。先备份，或先改名观察一段时间。

### 30 秒速记

ADD 加列；MODIFY 改类型；CHANGE 旧名+新名；DROP 删列；RENAME TO 改表名；DROP TABLE 删表、TRUNCATE 清空。

### 自测

1. MODIFY 和 CHANGE 都能改字段，差别在哪？
   - 答：MODIFY 只改类型或属性，字段名不变；CHANGE 必须同时写旧名和新名，所以既能改名也能改类型。只改名时用 CHANGE，只改类型时 MODIFY 更清楚。
2. DROP TABLE 和 TRUNCATE TABLE 的结果差在哪？
   - 答：DROP 把表结构和数据一起删掉，表不存在了；TRUNCATE 保留表结构，只把数据清空并重置自增计数，表还在。

### 材料与来源

- [平台视频页] B站原视频 P09《09. 基础-SQL-DDL-表操作-修改&删除》 https://www.bilibili.com/video/BV1Kr4y1i7ru/?p=9
- [平台视频页] 本集采样画面 p09_t20.jpg（约 124s） https://www.bilibili.com/video/BV1Kr4y1i7ru/?p=9
- [平台视频页] 本集采样画面 p09_t80.jpg（约 498s） https://www.bilibili.com/video/BV1Kr4y1i7ru/?p=9
- [官方文档] MySQL 8.0 Reference Manual: ALTER TABLE https://dev.mysql.com/doc/refman/8.0/en/alter-table.html

证据说明：以同版讲义公开镜像核对：讲义 2.3.2.4 修改 / 2.3.2.5 删除（p24–25）。原声字幕未取得（匿名接口字幕轨为空且需登录），讲师逐句讲解未核；本页示例、表与数字为站内原创，不是课堂原表。
