修改表名
用法: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;