修改数据表:
添加单列:
ALTER TABLE tbl_name ADD [COLUMN] col_name column_definition [FIRST|AFTER column];
(默认在末尾)
例如在usename后面添加列:
alter table users1 add password varchar(20) not null after username
在所有列的最前面添加列
alter table users1 add password varchar(20) not null first;
添加多列:ALTER TABLE tbl_name ADD [COLUMN] (col_name col_definition,...);(无法指定位置,只能在末尾)
删除单列:ALTER TABLE tbl_name DROP [COLUMN] col_name;
例如:
alter table users1 drop truename;
删除多列:ALTER TABLE tbl_name DROP [COLUMN] col_name,DROP [COLUMN] col_name,...;
创建一个测试的表
create table users2(
usename varchar(20) not null,
pid smallint unsigned);
增加列
alter table users2 add id smallint unsigned;
添加主键约束
标准:
**ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name....);
symbol为PRIMARY KEY的别名。**
例子:
alter table users2 add constraint pk_users2_id PRIMARY KEY(id);
添加唯一约束
alter table users2 add unique(username);
添加外键约束
alter table users2 add foreign key(pid) references provinces(id);
添加/删除默认约束
alter table users2 add age tinyint unsigned not null;//添加一列
添加默认约束
alter table users2 alter age set default 15;
删除默认约束
alter table users2 alter age drop default;
删除主键约束
alter table users2 drop primary key;
删除唯一约束
alter table users2 drop index username;//删除的是约束,而不是字段
删除外键约束
先查询外键名字
show create table users2;
alter table users2 drop foreign key users2_ibfk_1;
修改列定义
修改位置
alter table users2 modify id smallint unsigned not null first;
修改类型
alter table users2 modify id tinyint unsigned not null;
修改列的名称,从pid 改为 p_id
alter table users2 change pid p_id tinyint unsigned not null;
修改数据表的名字
alter table users2 rename users4;