在操作数据库表时难免会出错,如何修改数据表呢?
修改表结构是指增加或者删除字段、修改字段或者是字段类型、设置取消索引、设置取消主键外键和修改表注解等。修改表结构使用alter table命令。
语法:
ALTER [IGNORE] TABLE tbl_name [alter_specification [, alter_specification] ...]
当指定IGNORE时,如果出现重复的行,则只执行一行,其他重复的行被删除,其中,alter_specification子句定义要修改的内容,的语法。 |
| ADD [COLUMN] column_name column_definition [FIRST | AFTER column_name] --添加新字段 | ADD INDEX[index_name](index_column_name...) --添加索引名称 | ADD UNIQUE[index_name](index_column_name...) --添加唯一索引名称 | ADD PRIMARY KEY(index_column_name...) --添加主键名称 | CHANGE [COLUMN] old_column_name new_column_name column_definition [FIRST|AFTER column_name] --修改字段名称和类型 | DROP PRIMARY KEY --删除主键 | DROP [COLUMN] column_name --删除字段 | DROP INDEX index_name --删除索引
'user2'表添加为整形ccc字段不为空的字段
ALTER TABLE `user2` ADD `ccc` INT NOT NULL
'user2'表已将 id和Name2字段设为索引
ALTER TABLE `user2` ADD INDEX ( `id` , `Name2` ) ;
'user2'表已将 password字段设为唯一索引
ALTER TABLE `user2` ADD UNIQUE (`password`)
'user2'表已将 ccc字段设为主键
ALTER TABLE `user2` ADD PRIMARY KEY(`ccc`)
'user2'表已将 Name2字段改名为Name(长255的字符类型)
ALTER TABLE `user2` CHANGE `Name2` `Name` CHAR( 255 )
删除'user2'表的主键
ALTER TABLE `user2` DROP PRIMARY KEY;
删除'user2'表的`ccc`字段
ALTER TABLE `user2` DROP `ccc`
删除'user2'表的`id`索引
ALTER TABLE `user2` DROP INDEX `id`
为了理解自己项目,在一般情况下会经常修改数据表,我们使用rename table 命令实现对数据表的重命名。
语法:
RENAME TABLE tbl_name TO new_tbl_name [, tbl_name2 TO new_tbl_name2] ...
翻译语法:
RENAME TABLE 数据库名加表名 TO 数据库名加新表名
案例:
把test数据库的user表改名为user2表
RENAME TABLE `test`.`user` TO `test`.`user2` ;