根据日常需要,我们对表的修改主要有这几方面:修改表的名字,字段的名字
修改字段的属性,如把字符型改为数值型
添加字段或字段的属性(约束条件)
更改字段的排列顺序
删除字段或字段的属性(约束)
修改表的存储引擎,存储引擎的作用详情请百度,或等日后说到的时候更。
有时候,我们创建表后不小心手滑了,把表名或字段名打错了,于是当我们想对表或某字段添加某些具体数据时,就会报错,这时我们就通过查看表(见浅见四),得知原先的表或字段,并将其改正过来,方便以后维护。如将std表,改为students表,name字段改为names字段。这时可以通过ALTER TABLE语句修改。将students表重命名为student.
ALTER TABLERENAME
值得注意的是,重命名的名字不能与已有的表名冲突,不然就会报错。
2.将students表中的name字段,重新命名为names字段.
ALTER TABLECHANGE;
值得注意的是,数据类型不能为空,但你可以把新数据类型设置为与原先的数据类型一样。同理可得,也可以只修改数据类型不改字段名字,只需把新字段设置的与旧字段名一样。
具体如下
2.我们也可以用MODIFY来修改数据的属性,语法规则如下
ALTER TABLEMODIFY
3.添加字段,随着工作量的增大,我们需要增加一些字段和属性。这时就要用到ADD了,具体语法如下
ALTER TABLE ADD [约束条件][FIRST|AFTER已存在字段]
这里[]的意思是可选可不选,就是不写也没关系,|的意思是或,即可挑选FIRST或AFTER.这是来选择字段所处的位置的
如,我想增加一个新字段名,叫做成绩,它的数据类型是INT.
ALTER TABLE students ADD score INT(10);
4.又比如我想增加学生的学号,要求它是主键,同时把它放在第一字段上
ALTER TABLE students ADD id INT(15) PRIMARY KEY FIRST;
看下效果
我们再增加个班级,把它放在名字的前面,具体如下
ALTER TABLE students ADD class INT(11) AFTER id;
看看效果
5.到这时,随着业务的扩大,或转型,我们的字段不断的增加,但有些已经渐渐不用了,这时就会给内存造成浪费。所以,有时我们需要删除一些字段或属性,这时就可以用drop命令。
具体语法如下
ALTER TABLEDROP;
如,我们把成绩这一段给删了,敲代码如下
ALTER TABLE students DROP score;
值得注意的是当我们想把整张表都删除的时候,如果要删除的表与其他表有关联,比如外键约束等,这时我们就会操作失败,因为它们紧紧扭在一起了,所以这时我们得先把外键约束分开,即删除。代码如下。
ALTER TABLE students DROP FOREIGN KEY;
6.最后我们终于来到了修改引擎这一块了,为什么要修改引擎,因为不同的引擎有不同的特点,我们要根据需要选择我们的存储引擎,当然一般是不用修改的啦。
6.1.InnoDB是一个默认的存储引擎,它的存储为64TB,足够大,而且支持事务,数值索引,数据缓存,外键。所以它能够用来跟其他表交互,恢复崩坏的数据,系统安全维护等,要求能实现并发控制的。
6.2.MyISAM存储能力更大,256TB,支持数值,全文索引,所以查找速度特别快,所以经常用对表进行插入或查询的,可以用。
6.3.Memory内存RAM,不算大,一般用来临时存放数据。
6.4.Arichive则非常适合存储归档数据,如日记信息等。
更改存储引擎如下,以MyISAM为例
ALTER TABLE ENGINE=;
最后的最后就要把无用的表删除了,如下
DROP TABLE;
PS.在进行表的操作前,记得更改数据库为你要操作的表的数据库,用USE