创建表test3,主键有id和name,id字段自动增长,
Name字段不为空,且具有唯一属性,
Password为字符串,字段不为空。
create table test3(id int auto_increment, name varchar(20) not null unique, password varchar(20) not null, primary key(id,name) );
创建表test4,id字段自动增长,
Name字段不为空,且具有唯一属性,
Password为字符串,字段不为空
Nameid和othername为外键,关联父表为test3,对应关联属性为父表中的id和name;
create table test4(id int auto_increment, name varchar(20) not null unique, password varchar(20) not null, nameid int , othername varchar(20), constraint testf foreign key(id,name)references test3(id,name) );
现在数据库中所有表如图:
1,修改表名:
语法:alter table 旧表名rename 新表名;
例如,修改test2表名为test5;
alter table test2 rename test5;
如图,可以看到test2没有了,test5取代了它:
2,修改字段的数据类型:
语法:alter table 表名 modify 属性名数据类型;
例如,修改test5表中的password字段数据类型,原password数据类型为varchar(20),现在要修改为varchar(40);
alter table test5 modify passwordvarchar(40);
password数据类型已经变为varchar(40),如图:
3,修改字段名:
语法:alter table 表名 change 旧属性名新属性名 新数据类型;
例如修改test5中的password字段为sex 数据类型为boolean;
Password字段被sex字段所取代,数据类型也变为布尔型,如图:
4,增加字段:
语法:alter table 表名 add 属性1 数据类型[完整性约束条件] [first|after 属性名2];
例如为test5增加一个address字段,数据类型为varchar(20),位置放在name后面,sex前面,约束条件是不为空;
alter table test5 add address varchar(20)not null after name;
执行之后test5表的详细结构如图:
5,删除字段:
语法:alter table 表名drop 属性名;
例如,把test5中的sex字段删除;
alter table test5 drop sex;
命令执行结果:
6,修改字段在表中位置:
语法:alter table 表名 modify 属性名数据类型 first|after 属性名2;
例如,修改test5中的address字段位置,使address放到name之前,id之后;
Alter table test5 modify addressvarchar(20) after id;
命令执行结果:
7,更改表的存储引擎:
语法:alter table 表名 engine=存储引擎名;
例如,修改test5表的存储引擎,修改为myisam;
alter table test5 engine=myisam;
命令执行结果:
8,删除表的外键约束:
语法:alter table 表名 drop foreign key 外键别名;
Test4表具有一个外键约束,外键别名为testf,父表为test3,test4表的详细结构如图所示:
删除test4的外键约束alter table test4 drop foreign key testf;
命令执行结果:
9,删除表:
Drop table 表名;
今天先学到这儿了~