数据库原理与应用 第 5 章 · 第四节
课程第 5 章第四节 图形改表加字段加多个字段改表名改字段名改类型换引擎删字段图形删表删除表 版式
第 5 章 数据表的管理和表中数据操纵 · 第四节

修改与删除数据表

ALTER TABLE 的六种改法,以及 DROP TABLE
本 节 知 识 点
  1. 24用 Workbench 修改数据表
  2. 25ALTER TABLE 的 ADD
  3. 26一次添加多个字段
  4. 27ALTER TABLE 的 RENAME
  5. 28ALTER TABLE 的 CHANGE
  6. 29ALTER TABLE 的 MODIFY
  7. 30ALTER TABLE 的 ENGINE
  8. 31ALTER TABLE 的 DROP
  9. 32用 Workbench 删除数据表
  10. 33用 DROP TABLE 删除数据表
24
第 5 章 · 第四节

用 Workbench 修改数据表

右键表选 Alter Table,改完点 Apply 才真的生效。

第 24 页课件

重 点

界面会先把要执行的 SQL 摆出来给你看,看清楚再点。

知道更多

学会看这段 SQL,等于图形界面在手把手教你写 ALTER TABLE。

想一想

点 Apply 之前,你会先看哪一处?

25
第 5 章 · 第四节

ALTER TABLE 的 ADD

ADD 往表上加字段,还能指定加在哪一列后面。

第 25 页课件

试一试看表结构一步步变

依次点
四条 ALTER,看表结构一步步变成什么样。

重 点

不写位置就加到最后,写 AFTER 插在某列后面,FIRST 放到最前。

上机做

上机第 9 题 给表加一个字段

26
第 5 章 · 第四节

一次添加多个字段

一次加好几个字段,要用括号裹起来。

第 26 页课件

记牢它三条

  1. 多个字段加小括号
  2. 一次多加只能放末尾
  3. 加 NOT NULL 用 CHANGE

重 点

表里已经有数据时加必填字段,老行没有值,得先想好默认值。

想一想

表里已经有一百行,这时候加一个必填字段该怎么办?

27
第 5 章 · 第四节

ALTER TABLE 的 RENAME

RENAME 只改表名,表里的结构和数据一个都不动。

第 27 页课件

打个比方

相当于给门口换一块牌子,屋里的家具一样没挪。

上机做

上机第 9 题 改个名再改回来

想一想

表名一改,原来引用它的外键会怎么样?

28
第 5 章 · 第四节

ALTER TABLE 的 CHANGE

CHANGE 改字段名,后面必须跟上数据类型。

第 28 页课件

重 点

就算类型不用变也得写一遍,写成和原来一样就行。

练一练

要把 sn 改名叫 sname,ALTER TABLE s 后面该接哪一句?
  1. ACHANGE sn sname
  2. BCHANGE sn sname VARCHAR(45)
  3. CMODIFY sn sname
  4. DRENAME sn sname
答案 B

CHANGE 后面必须带上新字段的数据类型,少了就报语法错。

上机做

上机第 9 题 改一次字段名

29
第 5 章 · 第四节

ALTER TABLE 的 MODIFY

MODIFY 改类型和位置,改不了字段名。

第 29 页课件

分清楚

要改什么用哪一个
字段名CHANGE
数据类型MODIFY 或 CHANGE
字段顺序MODIFY 加 AFTER

重 点

改顺序的时候数据类型不能省,得原样再写一遍。

上机做

上机第 9 题 把类型改窄一点

30
第 5 章 · 第四节

ALTER TABLE 的 ENGINE

ALTER TABLE 也能给表换一个存储引擎。

第 30 页课件

重 点

带外键的表不能换成 MyISAM,MyISAM 根本不认外键。

知道更多

第 4 章讲过各种引擎的差别,这里只是换个入口再设一次。

想一想

换引擎之前,最该先确认哪一件事?

31
第 5 章 · 第四节

ALTER TABLE 的 DROP

DROP 能删字段,也能删约束,两种写法不一样。

第 31 页课件

分清楚

删什么怎么写
删一个字段DROP 字段名
删一个约束DROP CONSTRAINT 名

重 点

删字段等于把那一列的数据一起扔掉,删之前确认没人在用。

上机做

上机第 10 题 删掉刚加的字段

32
第 5 章 · 第四节

用 Workbench 删除数据表

右键表选 Drop Table,可以先看 SQL 再决定。

第 32 页课件

重 点

Review SQL 是先看要执行什么,Drop Now 是直接删。

打个比方

一个是先把合同读一遍再签字,一个是拿过来就签。

想一想

这两个按钮,你更愿意点哪一个?

33
第 5 章 · 第四节

用 DROP TABLE 删除数据表

DROP TABLE 把表和数据一起删掉,结构也没了。

第 33 页课件

分清楚

命令删掉什么
DELETE只删行,表还在
TRUNCATE清空行,表还在
DROP TABLE表和行一起没

重 点

有外键的时候先删从表再删主表,顺序反了会被拦住。

上机做

上机第 12 题 按正确顺序删表

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