-- 修改表名 [rename to]
alter table tab_name rename to tab_new;
-- 修改字段类型(修改字段相对位置) [modify]
alter table tab_name modify field type (first/before field1);
-- 修改字段默认值/是否为空/自动增长
alter table tab_name modify field type not null/default ="未知"/auto_increment;
-- 修改字段名/字段类型! [change]
alter table tab_name change field newfield newtype;
-- 添加字段 [add]
alter table tab_name add field type (first/before field1);
-- 删除字段 [drop]
alter table tab_name drop field;
-- 添加主键!
alter table tab_name add primary key(field);
--删除主键
alter table tab_name drop primary key;
--添加外键约束 --给tab_name 中的 field列添加名为fk_name的约束绑定 x表中的主键i
alter table tab_name add constraint fk_name foreign key(field)
references x(i);
-- 删除外键约束 -- 删除约束名为 fk_name的外键约束
alter table tab_name drop foreign key fk_name;
alter table tab_name drop index index_name;
-- 设置唯一约束
alter table tab_name add constraint uq_name unique(field);
-- 设置默认值
alter table tab_name field set default "默认";
-- 删除默认值
alter table tab_name field drop default;
-- 删除唯一约束
alter table tab_name drop index uq_name;
--修改数据库表存储引擎
alter table altertable engine = myisam;
-- 查看表状态(引擎)
show table status;
show create table tab_name;
测试
-- 先构建测试数据表
create table testalter(i int,c varchar(1));
-- 查看表结构
show columns from testalter; -- 或者用 desc testalter;
alter删除/添加/修改字段名
-- 删除字段
alter table testalter drop i;
当表中只剩一个字段时就不能用 alter
删除字段了,只能通过删除表名的方式删除了! drop table table_name;
--新增字段
alter table testalter add i int (first:新增字段到第一列/alter column_name 新增字段到某一列后面);
新增的字段自动添加到表末尾!
- 指定字段添加的位置!
--添加到第一列
alter table testalter add i int first;
-- 添加到某一字段后面!
alter table testalter add x int i;
alter 修改字段类型及名称
--修改字段类型
alter table testalter modify i bigint;
-- 修改字段名及类型
![alter table testalter change i j varchar(1);
我们也可以通过change
只修改字段类型或者名称!
alter table 对null值和默认值的影响
-- 我们可以通过alter modify 修改字段是否为null或者默认值!
alter table testalter modify c varchar(100) not null default "未知";
alter修改表名
-- 修改表名
alter table testalter rename to altertable;
alter修改table存储引擎
alter table altertable engine = myisam;
-- 查看该数据库下所有表的引擎
show table status;
-- 查看某个表的引擎!
show create table altertable;
alter 修改主键/外键约束
--修改主键
alter table tab_name modify field type primary key;
--删除名为pk_name主键!
alter table tab_name drop primary key pk_name;
--删除外键约束
alter table tab_name drop foregin key fk_name;
-- 添加外键约束 给field 字段设置为外键 关联 x表的i主键 约束名为 fk_name
alter table tab_name add constraint fk_name foregin key(field) references x(i);
修改字段相对位置
-- 修改字段相对位置
alter table altertable modify x int(11) first/ after j;
设置字段default/uique/null
-- 设置默认值
alter table tab_name alter field set default '默认值';
--删除默认值
alter table tab_name alter field drop default;
-- 设置唯一约束
alter table tab_name add constraint uq_name unique(field);
-- 删除唯一约束
alter table tab_name drop index uq_name;