MySQL修改表结构(五)上

在我们创建好表之后,并不是不能再次对表的结构进行相应修改了,可以通过 DDL 语句对其进行相应的维护,进行适当的修改。 但老蝴蝶仍然建议,在设计表的时候,尽量将表设计的合理一些,避免后期对其进行修改。


老蝴蝶这一章所使用的表,用的是第四章的表,数据库仍然是yuejl 数据库。


MySQL修改表结构(五)上


一. 维护表


对表 table 的整体信息进行相应的维护。


一.一 修改表名


1 . 第一种方式


所用命令:


    alter table 旧表名  rename [to] 新表名


其中, to 可以省略。 但不建议省略。


演示修改表名:


如 将 表名为 t2 的修改成 yjlt2;


alter table t2 rename to yjlt2;


MySQL修改表结构(五)上


再次查询: show tables;


MySQL修改表结构(五)上


2 . 第二种方式


所用命令:


    rename table 旧表名 to 新表名


演示修改表名:


如将表名 为t 的修改成 yjlt;


 rename table t to yjlt;


MySQL修改表结构(五)上


一.二 修改表的编码格式


所用命令:


    alter table 表名 character set 新的编码方式


演示 修改表的编码格式。 如将t3的编码格式修改成 latin1


1 . 原先的t3 表的样式


MySQL修改表结构(五)上


2 . 将t3的编码样式修改成 latin1


    alter table t3 character set latin1;


MySQL修改表结构(五)上


3 . 再次查看样式


MySQL修改表结构(五)上


一.三 修改表的存储引擎


MySQL中不同的存储引擎,支持不同的功能。 5.5 之后的存储引擎 默认为 InnoDB, 之前的是 MyISAM.


支持的存储引擎有:


MySQL修改表结构(五)上


关于存储引擎,老蝴蝶后面再详细讲解。


所用命令:


    alter tabel 表名 engine= 新的存储引擎


演示 修改表的存储引擎。 仍然以t3 表为便。 原先的是 engine=InnoDB, 现在改成 MyISAM.


    alter table t3 engine=MyISAM;


MySQL修改表结构(五)上


再次查看:


MySQL修改表结构(五)上


一.四 删除表


所用命令:


    drop table  [if exists]  表名1,表名2,表名3


删除表的时候, 可以删除一个,也可以一次删除多个。


一.四.一 删除单个表


演示删除表: 如 删除表 yjlt;


drop table yjlt;


MySQL修改表结构(五)上


再次查询: show tables;


MySQL修改表结构(五)上


发现,记录变成了13行,已经没有 yjlt 这个表了。


一.四.二 删除多个表


如同时删除 a12,d10,d11 三个表。


    drop table a12,d10,d11;


MySQL修改表结构(五)上


一.四.三 删除一个不存在的表


如 删除表 yuea, 这个表不存在于这个数据库 yuejl 里面。


删除:


 drop table  yuea;


MySQL修改表结构(五)上


一.四.四 删除有外键关联的主表


user 表和 dept 表存在着外键关联信息, 即user 表里面的deptId 引用于 dept 表中的 id主键。 当想直接删除 dept表时,会报错。


    drop table dept;


MySQL修改表结构(五)上


需要先解除 user 表与 dept 表的外键关联信息,才能进行删除。


关于如何删除外键约束, 会在下面内容进行讲解。


一.五 清空表


所用命令:


    truncate table 表名


清空表演示: 用自动增长的 a12 表。


1 . 原先的表 a12 的信息


MySQL修改表结构(五)上


下一条记录 id=3.


truncate table a12;


MySQL修改表结构(五)上


3 . 再次查询数据


MySQL修改表结构(五)上


发现,数据是空的了。


4 . 查询一下 ,现在表a12 的信息


MySQL修改表结构(五)上


发现,表的信息a12 没有任何改变。


5 .再次插入一条数据,不指定id, 让其自动增长, 再次查询


insert into a12(name) values('两个蝴蝶飞');


MySQL修改表结构(五)上


发现,编号仍然是从 id=1 开始。


truncate 清空表,就相当于快速创建一个 与原来结构一模一样的表, 序列,自动增长等,均是最开始的模样。

上一篇:专访阿里云高级技术专家吴威:Kafka、Spark和Flink类支持流式计算的软件会越来越流行


下一篇:圣诞节熬夜整理一套SSM模板,让你可以快速搭建环境(三)