修改表名

用法:alter table 旧表名 rename 新表名;
mysql> alter table TYPE rename type;
ALTER TABLE old_table_name RENAME (TO) new_table_name;
RENAME TABLE old_table_name TO new_table_name;

上面两句都可以修改表名字

修改表的列名

用法:alter table 表名 change 旧表名 新表名 类型;
mysql> alter table type change name type_name varchar(30) not null;
ALTER TABLE table_name CHANGE old_col_name new_col_name datatype;

datatype 可以保持原来的,也可以改成新的

修改表某一列的类型

用法:alter table 表名 modify 列名 类型;
mysql> alter table type modify type_name varchar(100);
ALTER TABLE table_name MODIFY col_name new_datatype;
ALTER TABLE table_name CHANGE col_name col_name new_datatype;

修改某一列的数据类型

增加一列

用法:alter table 表名 add 列名 类型;
mysql> alter table type add age int(11);

删除一列

用法:alter table type drop 列名;
mysql> alter table type drop age;

修改列的位置

ALTER TABLE table_name MODIFY col_name datatype FIRST; # 把某一列调到第一列
ALTER TABLE table_name MODIFY col_name datatype AFTER another_col_name; # 把一列调到另外一列的后边

上面两句的datatype都可以保持原来的,或者改成新的

修改UNIQUE KEY约束

ALTER TABLE table_name DROP INDEX|KEY uk_name; # 清楚原先的unique 约束, un_name是unique约束的名字
ALTER TABLE staff ADD UNIQUE KEY new_uk_name (col1, col2, …)# 添加新的unique约束

修改主键

ALTER TABLE table_name DROP PRIMARY KEY; 删除主键
ALTER TABLE table_name ADD PRIMARY KEY (col_name); 添加主键

修改外键

ALTER TABLE table_name DROP FOREIGN KEY fk_name;

上一句只会删除外键约束,但是外键的索引没有删除,利用show create table table_name \G;发现外键的名称还在,但是约束没了

ALTER TABLE table_name DROP INDEX|KEY fk_name; # 此句是为了删除外键索引
ALTER TABLE table1 ADD
CONSTRAINT fk_name foreign key (table1_col)
REFERENCES table2(table2_col); # 添加外键

修改null和not null

ALTER TABLE table_name MODIFY col_name datatype NOT NULL; # 把原来NULL的修改为NOT NULL;
ALTER TABLE table_name MODIFY col_name datatype NULL; # 把原来NOT NULL的修改为NULL;

修改默认值

ALTER TABLE table_name ALTER col_name SET DEFAULT new_value;

把某列的default值修改为new_value

更新数据

UPDATE table_name SET col1 = value1, col2 = value2, … WHERE condition;

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐