数据库原理与应用 第 5 章 · 第四节
课程 › 第 5 章 › 第四节 图形改表添加字段表名与引擎CHANGE 与 MODIFY删除字段和约束删除表 版式
第 5 章 数据表的管理和表中数据操纵 · 第四节

修改与删除数据表

ALTER TABLE 的几种修改方式,以及 DROP TABLE
本 节 知 识 点
  1. 16用 Workbench 修改数据表
  2. 17ALTER TABLE 添加字段
  3. 18修改表名和存储引擎
  4. 19修改字段:CHANGE 与 MODIFY
  5. 20ALTER TABLE 删除字段和约束
  6. 21删除数据表
16
第 5 章 · 第四节 · 课件第 24 页

用 Workbench 修改数据表

在表上右键选 Alter Table,修改后点 Apply 生效。

课件第 24 页

重 点

Apply 前弹出的窗口里是 Workbench 生成的 ALTER TABLE 语句,可以对照着学习写法。

17
第 5 章 · 第四节 · 课件第 25、26 页合并重做

ALTER TABLE 添加字段

ADD 给表添加新字段,可以指定放在哪个字段之后。

5.2 MySQL 数据表管理课件第 25、26 页合并

ALTER TABLE … ADD:添加字段

ALTER TABLE 用来修改表的结构:添加、修改、删除字段和约束,修改表名和存储引擎。
ALTER TABLE 表名 ADD 新字段名 数据类型 [约束] [FIRST | AFTER 已有字段名];
要做的事写法
添加一个字段,放在最后ALTER TABLE s ADD class_no VARCHAR(6);
添加一个字段,放在 sn 后面ALTER TABLE s ADD phone CHAR(11) AFTER sn;
添加一个字段,放在第一列ALTER TABLE s ADD id INT FIRST;
一次添加两个字段ALTER TABLE s ADD (class_no VARCHAR(6), address VARCHAR(20));
一次添加多个字段时要用括号括起来,而且只能加在表的最后,不能再写 FIRST 或 AFTER。

重 点

新字段加进来以后,表中原有各行在这个字段上的值都是 NULL。

实 验

实验 2-2 添加和修改字段

18
第 5 章 · 第四节 · 课件第 27、30 页合并重做

修改表名和存储引擎

RENAME 修改表名,ENGINE 更换存储引擎。

5.2 MySQL 数据表管理课件第 27、30 页合并

修改表名和存储引擎

RENAME 修改表名
ALTER TABLE 旧表名 RENAME [TO] 新表名;
ALTER TABLE s RENAME student;

只修改表的名字,表的结构和表中的数据都不变。

ENGINE 更换存储引擎
ALTER TABLE 表名 ENGINE=新引擎名;
ALTER TABLE s ENGINE=MyISAM;

MyISAM 不支持外键。表与其他表之间有外键关系时,不能改成 MyISAM,执行会报 3776。

知道更多改名后的外键

表改名后,其他表上引用它的外键会自动指向新表名,不需要重新定义。

19
第 5 章 · 第四节 · 课件第 28、29 页合并重做

修改字段:CHANGE 与 MODIFY

CHANGE 可以修改字段名,MODIFY 只改类型和位置。

5.2 MySQL 数据表管理课件第 28、29 页合并

修改字段:CHANGE 与 MODIFY

CHANGE 可以修改字段名
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 数据类型;
ALTER TABLE s
CHANGE sn sname VARCHAR(45) NOT NULL;

数据类型不能省略,类型不变也要照原样写出来。

MODIFY 修改类型或位置,不能改名
ALTER TABLE 表名 MODIFY 字段名 数据类型 [FIRST | AFTER 字段名];
ALTER TABLE s
MODIFY sn CHAR(30) NOT NULL;

只调整字段位置时,数据类型同样不能省略。

CHANGE 和 MODIFY 都会重新定义整个字段。原来的 NOT NULL、DEFAULT、COMMENT 如果不重新写上,执行后就没有了。

试一试四条 ALTER TABLE,表结构怎样变化

依次执行
ALTER TABLE s …
从 ADD 开始依次点,看表结构每一步的变化。

知道更多保留 NOT NULL

修改字段时要把 NOT NULL 一起写上,否则字段变成可以为空。

实 验

实验 2-2 添加和修改字段

20
第 5 章 · 第四节 · 课件第 31 页

ALTER TABLE 删除字段和约束

DROP 删除字段,DROP CONSTRAINT 删除约束。

课件第 31 页

重 点

删除约束要写出约束名,约束名可以用 SHOW CREATE TABLE 查到。

知道更多

删除字段时,这个字段中的数据会一起删除,无法恢复。

实 验

实验 2-3 删除字段,修改约束

21
第 5 章 · 第四节 · 课件第 32、33 页

删除数据表

DROP TABLE 同时删除表的结构和表中的全部数据。

课件第 33 页

重 点

表之间有外键关系时,先删从表,再删主表,否则报 3730。

知道更多在 Workbench 中删除

右键表选 Drop Table。选 Review SQL 可以先看要执行的语句,Drop Now 直接删除。

实 验

实验 2-6 删除数据和表

保山学院·人工智能教研室·曹鼎鼎