修改/重命名Mysql数据表
在操作数据库表时难免会出错,如何修改数据表呢?
PHPmyadmin修改表结构
命令行修改数据表结构
修改表结构是指增加或者删除字段、修改字段或者是字段类型、设置取消索引、设置取消主键外键和修改表注解等。修改表结构使用alter table命令。
语法:ALTER [IGNORE] TABLE tbl_name [alter_specification [, alter_specification] ...]当指定IGNORE时,如果出现重复的行,则只执行一行,其他重复的行被删除,其中,alter_specification子句定义要修改的内容,的语法。
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` ;