一般表格创建好以后,很可能需要修改和表相关的内容。如修改表名,修改列名,类型,增加列等等。
删除列,ALTER TABLE 表名 DROP 列名;
ALTER TABLE student DROP `name`;
这样就删除了表中name那一列。
增加列,增加时可以指定列名,和字符类型和列的位置顺序,这是类型等等。
ALTER TABLE student add `name` varchar(200) FIRST;
ALTER TABLE student add `name` varchar(200) AFTER id;
alter TABLE student add COLUMN aname varchar(111) NOT NULL DEFAULT '' COMMENT '姓名';
修改列属性名字,并重新修改类型,而且类型必须是和原来类型不同,否则SQL语句会报错。
alter TABLE student change COLUMN `aname` `sex` char;
修改列字段的类型:
alter TABLE student MODIFY COLUMN `sex` varchar(100) DEFAULT NULL COMMENT '性别';
如果原来的字段里有NULL值,且将属性改为NOT NULL,会报一个 Invalid use of NULL value的错误,这里主要是原来的空值,已经没办法自动转为非空了,所以先将空值手动改为非空字符,或者之间删掉重建一列。
修改字段的默认值:
alter TABLE student ALTER COLUMN `sex` set DEFAULT '男';
其余的还有修改表的类型和表的名字。表的类型一般指的就是数据表的引擎类型了,这个再上一章说过了,具体修改语句为:
ALTER TABLE student ENGINE = MYISAM;
修改表名:
ALTER TABLE student RENAME st;
修改表的注释:
ALTER TABLE st COMMENT '学生信息表';
也可以修改表的编码格式,如果在一开始创建时,忘记使用utf8格式,那可以使用如下语句修改表的字符格式。这里的COLLATE指的是每种字符编码格式下的排序方式,utf8_general_ci指的是一种一般排序方法。
ALTER TABLE st CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci
Note:
ci是 case insensitive, 即 "大小写不敏感", a 和 A 会在字符判断中会被当做一样的。
经过这几篇的文章的编写,楼主对数据表的认识加深了不少。