show index from provinces;//查看表provinces中的约束
show INDEX from users2\G;//换一种直观的格式查看users2的唯一约束
3,添加外键 创建主表 CREATE TABLE provinces ( id smallint UNSIGNED PRIMARY key auto_increment, pname varchar(20) not NULL ); 创建子表 CREATE TABLE users ( id SMALLINT UNSIGNED PRIMARY KEY auto_increment, username VARCHAR (10) NOT NULL, pid SMALLINT UNSIGNED, FOREIGN KEY (pid) REFERENCES provinces (id) //参照provinces中的id创建pid外键 ); 4,外键约束的参照操作ALTER TABLE user1 ADD ( //添加多个字段,备注:不能给字段指定位置,必须添加小括号 t1namea VARCHAR (32) NOT NULL, t1amea VARCHAR (32) NOT NULL );6,删除数据表字段 ALTER TABLE user1 DROP t1amea; //删除表user1 中的t1amea列
ALTER TABLE user1 drop id,drop age;//同时删除user1中的id列,age列
ALTER TABLE user1 drop tame , add age VARCHAR (32) NOT NULL;//删除user1中的id列,添加age列
7,为数据表添加删除约束
alter table users2 add PRIMARY key (id); //将表users2中的字段id修改为主键
ALTER table users2 add UNIQUE (username);//为表users2中的字段username添加唯一约束
alter table users2 add FOREIGN key(pid) REFERENCES provinces(id); 为users2中的字段pid添加外键,外键指向provinces表中的id字段
alter table users2 alter age set DEFAULT 15; //将字段age的默认值修改为15
alter table users2 alter age drop DEFAULT; //删除字段age的默认值
alter table users2 drop PRIMARY key;;//删除表users2的主键约束(因为每张表只有一个主键,所以不用指定主键对应的字段名称)
alter table users2 drop INDEX username;//删除表users2中username的唯一约束
alter table 表名 drop constraint 外键约束名8,修改数据表
alter table users2 MODIFY id SMALLINT UNSIGNED not null FIRST;//将id字段放在表的第一个位置
alter table users2 MODIFY id TINYINT UNSIGNED not null ;//将id的类型修改为TINYINT (大类型改成小类型,有可能会造成数据的丢失)
alter table users2 change pid p_id TINYINT UNSIGNED not null ;//将字段pid 修改成p_id,并且类型是TINYINT
alter table users2 RENAME users3 ;//将表users2 的名称修改成users3
RENAME table users3 to users2;//将表users3 的名称修改成users2(不要随意更改表的名字和列的名字,避免视图以及引用不可用)