添加和删除字段操作
添加字段
alter table tbl_name add 字段名称 字段属性 [完整性约束条件] [first|after 字段名称之后];
删除字段
alter table tbl_name drop 字段名称;
测试
create table if not exists user1(
id int unsigned auto_increment key
);
--添加用户名字段 username varchar(20)
alter table user1 add username varchar(20);
--添加密码字段 password varchar(20) 到id字段之后
alter table user1 add password varchar(20) not null default '123456' after id;
--删除密码字段
alter table user1 drop password;
--多次添加或删除用逗号分隔
create table if not exists test(
id int unsigned auto_increment key,
price float(8,2) unsigned not null default 0
);
alter table test
add num int unsigned not null default 100,
add test varchar(50) not null first,
add test1 char(23) not null after price,
drop price;
添加和删除默认值操作
添加默认值
alter table tbl_name alter 字段名称 set default 默认值;
删除默认值
alter table tbl_name alter 字段名称 drop default;
测试
create table user2(
id int unsigned auto_increment key,
username varchar(20) not null,
age tinyint unsigned not null default 18,
email varchar(50) not null
);
--给email字段添加默认值 huowuyan@163.com
alter table user2 alter email set default 'huowuyan@163.com';
--给age删除默认值
alter table user2 alter age drop default;
modify和change关键字的使用
修改字段类型、字段属性
alter table tbl_name modify 字段名称 字段类型 [字段属性] [first|after 字段名称];
修改字段名称、字段类型、字段属性
alter table tbl_name change 原字段名称 新字段名称 字段类型 [字段属性] [first|after 字段名称];
测试
create table user3(
id int unsigned auto_increment key,
username varchar(5) not null unique,
password char(32) not null,
email varchar(10) not null
);
--将用户名字段的类型改为20
alter table user3 modify username varchar(20) not null unique;
--将username 名称改为user
alter table user3 change username user varchar(20) not null;
主键和唯一索引操作
添加主键和删除主键
alter table tbl_name add primary key(字段名称);
alter table tbl_name drop primary key;
添加唯一和删除唯一
alter table tbl_name add unique key|index [index_name] (字段名称);
alter table tbl_name drop index index_name;
--当表中没有主键时,unique就相当于主键
测试
create table user4(
id int unsigned,
username varchar(20) not null,
email varchar(30) not null,
phone varchar(20) not null unique
);
alter table user4 add primary key(id);
alter table user4 drop primary key;
alter table user4 add unique key uni_email (email);
alter table user4 drop index uni_email;
重命名表的操作
alter table tbl_name rename [to|as] new_tbl_name; --第一种方式
rename table tbl_name to new_tbl_name; --第二种方式