1、创建表
create table person (
`name` varchar(20) not null,
sex varchar(6) not null default 'male'
)engine=InnoDb default charset='utf8';
2、给现有表添加列
alter table person add id bigint(20) not null auto_increment primary key first;
3、删除一列
alter table person drop id;
4、给表添加唯一索引
alter table person add unique(`id`);
5、给表添加普通索引
alter table person add index person_index(`name`);
6、给表添加多列索引
alter table person add index person_mulitCol_index(`name`,sex);
7、给表添加数据
insert into person(name,sex) values('aaa','male'),('AAA','female');
8、给表添加虚拟列
在MySQL 5.7中,支持两种Generated Column,即Virtual Generated Column和Stored Generated Column,前者只将Generated Column保存在数据字典中(表的元数据),并不会将这一列数据持久化到磁盘上;后者会将Generated Column持久化到磁盘上,而不是每次读取的时候计算所得。很明显,后者存放了可以通过已有数据计算而得的数据,需要更多的磁盘空间,与Virtual Column相比并没有优势,因此,MySQL 5.7中,不指定Generated Column的类型,默认是Virtual Column。
alter table person add name_sex varchar(20) generated always as (left(name,1),add index (name_sex,sex);