1. 修改数据表
修改表指的是修改数据库中已经存在的数据表的结构。MySQL使用ALTER TABLE语句修改表、常用的修改表的操作有:修改表名、修改字段数据类型或字段名、增加和删除字段、修改字段的排列位置,更改表的存储引擎,删除表的外键约束等。
MySQL是通过ALTER TABLE语句进行表结构的修改
修改表名
ALTER TABLE<旧表名>RENAME[TO]<新表名>
其中TO为可选参数,使用与否均不影响结果
修改字段的数据类型
修改字段的数据类型,就是把字段的数据类型转换成另一种数据类型:
ALTER TABLE<表名>MODIFY<字段名><数据类型>
- 表名:指要修改数据类型的字段所在表的名称;
- 字段名:指需要修改的字段;
- 数据类型:指修改后字段的新数据类型
修改字段名
ALTER TABLE <表名> CHANGE<旧字段名><新字段名><新数据类型>;
- 旧字段名:指修改前的字段名
- 新字段名:指修改后的字段名
- 新数据类型:指修改后的数据类型,如果不需要修改字段的数据类型,可以将数据类型设置成原来的,但不能省略,必须声明
CHANGE也可以只修改数据类型,实现和MODIFY同样的效果,但是由于语法的限制,新旧字段名都不能省略。
由于不同类型的数据在机器中存储的方式和长度并不相同,修改数据类型可能会影响到已有的数据。
添加字段
随着业务需求的变化,可能需要在已经存在的表中添加新的字段。ALTER TABLE <表名> ADD <新字段名> <数据类型>
[约束条件][FIRST|AFTER 已存在的字段名]
- 新字段名:指需要添加的字段的名称
- FIRST:可选参数,将新添加的字段设置为表的第一个字段
- AFTER :可选参数,将新添加的字段添加到指定的“已存在字段名”的后面
如果不指定FIRST或AFTER这两个参数,则默认将新添加的字段设置为数据表的最后列
删除字段
删除字段是将数据表中的某个字段从表中移除ALTER TABLE <表名> DROP <字段名>
- 字段名:指需要从表中删除的字段的名称
修改字段的排列位置
对于一个数据表来说,在创建的时候,字段在表中排列顺序就已经确定了,但表的结构并不是完全不可以改变的,可以通过ALTER TABLE来改变表中字段的相对位置。
ALTER TABLE<表名>MODIFY<字段1><数据类型>FIRST|AFTER<字段2>
- 字段1:指要修改位置的字段
- 数据类型:指字段1 的的数据类型(可以更改其数据类型,但由于我们的需求是更改位置,所以应该不做改变)
- AFTER:将字段1 插入到字段2 的后面
更改表的存储引擎
关于数据引擎的介绍请参考另一篇博文MySQL数据库的基本操作
ALTER TABLE <表名>ENGINE= <更改后的存储引擎名>
在修改之前,可以先使用SHOW CREATE TABLE查看表当前的存储引擎。
删除表的外键约束
对于数据库中定义的外键,如果不在需要,可以将其删除。外键删除之后,主从表间关系就会解除。
ALTER TABLE <表名> DROP FOREIGN KEY<外键约束名>
- 外键约束名:指在定于表时CONSTRAINT关键字后面的参数。
2. 删除数据表
删除数据表就是讲数据库中已经存在的表从数据库中删除。在删除表的同时,表的定义和所有的数据均会被删除。在删除操作前,最好对表中的数据做个备份,以免造成无法挽回的后果。
(1)删除没有被关联的表
使用DROP TABLE可以一次删除一个或多个没有被其他表关联的数据表。
DROP TABLE[IF EXISTS] 表1,表2,... 表n
- 表n:指要删除的表的名称,后面可以同时删除多个表,只需将要删除的表名依次写在后面,相互之间用逗号隔开即可。
- 参数 IF EXIST:用于在删除前判断删除的表是否存在,加上该参数后,再删除表的时候,如果表不存在,SQL语句仍然可以顺利执行,但是会发出警告。
(2)删除被其他表关联的主表
数据表之间存在外键关联的情况下,父表不能被直接删除,因为那样会破坏表的参照完整性。如果必要删除,可以先删除与它关联的子表,再删除父表,只是这样同时删除了两个表中的数据。所以,可以先删除相关联的外键约束,然后就可以执行删除操作。
先删除外键约束
ALTER TABLE <表名> DROP FOREIGN KEY<外键约束名>
再删除表
DROP TABLE <表名>
版权声明:本文为xinyan233原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。