alter table 修改表结构规范
use database_name; alter table table_name change field_name_old field_name_new varchar(256) NOT NULL COMMENT '五级分类名', ADD INDEX index_name ( `name` (32)), ADD INDEX index_time ( `timeId` );
# 添加主键:
alter table table_name add primary key(id); alter table table_name add primary key(user,host,db);
# 单列主键
# 多列联合主键
# 添加唯一索引:
alter table table_name add unique uq_name(column_name_one,column_name_two);
# 添加普通索引:
alter table table_name add index uq_name(column_name_one,column_name_two);
# 其中的column关键字可以省略。
# 添加新列到最后面 alter table table_name add column column_name varchar(255) not null default '0' comment 'comment something'; # 添加新列到最前面 alter table table_name add column column_name varchar(255) not null default '0' comment 'comment something' first; # 添加新列到指定列后面 alter table table_name add column column_name varchar(255) not null default '0' comment 'comment something' after column_name_other;
# 其中的column关键字可以省略。
# 删除某列 alter table table_name drop column column_name;
# 修改列名称或列其他信息。可修改列名称、列类型、列参数。 alter table table_name change column_name_old column_name_new varchar(64) not null default '' comment '注释'; # 仅仅调整列的顺序 alter table table_name change column_name column_name varchar(255) not null default '0' comment 'comment something' after column_name_other; # modify只能修改列类型和列参数,不能修改列名称。 alter table table_name modify column_name varchar(64) not null default '' comment '注释';
# 修改表的名称:
alter table table_name_old rename to table_name_new;
# 修改表的存储引擎:
alter table table_name engine=MyISAM;
修改字符集:
# 修改库的字符集和排序规则:
mysql>> alter database db_name default character set utf8mb4 collate utf8_general_ci; # 修改表的默认字符集和排序规则,同时还将表现有的所有列更改为新的字符集和排序规则:
mysql>> alter table t_pass_result convert to character set utf8mb4 collate utf8_general_ci; # 只修改表的默认字符集和排序规则,不会更改表现有列的字符集和排序规则:
mysql>> alter table tbl_name default character set utf8mb4 collate utf8_general_ci; # 修改列的字符集和排序规则:
mysql>> alter table tbl_name change col_name col_name varchar(256) character set utf8mb4 collate utf8_general_ci;
查看字符集:
# 查看库的默认字符集和排序规则: mysql>> show create database db_name; # 查看库的默认字符集和排序规则: mysql>> show create table tbl_name; # 查看库的默认字符集和排序规则: mysql>> show full columns from tbl_name;
# 也可以通过查询系统表:
mysql>> select character_set_name from information_schema.columns;
# 修改表的行记录格式:
alter table table_name row_format=compressed;
# 修改表的自增初始值: alter table table_name auto_increment=100;
# 修改表的注释: alter table table_name comment='注释修改';
# 删除主键: alter table table_name drop primary key;
# 不管是单列主键还是多列复合主键,都是这个语句。
# 但是如果主键自增类型,则需要先将其自增属性去掉,alter table table_name modify column_name_old column_name_new type;
# 删除外键:
alter table table_name drop foreign key key_name;
#
#########################
igoodful@qq.com