四种表的约束:
- 非空约束:not null
- 唯一约束:unique
- 主键约束:primary key
- 外键约束:foreign key
非空约束
create table user(
id int,
name varchar(20) not null
);
- 删除name的非空约束
alter table user modify name varchar(20); - 创建表之后,添加非空约束
alter table user modify name varchar(20) not null;
唯一约束
create table user2(
id int,
tel varchar(20) unique
);
- 注意:MySQL中,唯一约束限定的列的值可以有多个null
- 删除唯一约束:
alter table user2 drop index tel; - 在表创建之后,添加唯一约束:
alter table user2 modify tel varchar(20) unique;
主键约束
create table user3(
id int primary key,
name varchar(20)
);
- 删除主键:
alter table user3 drop primary key; - 表创建之后,添加主键:
alter table user3 modify id int primary key; - 自动增长(auto_increment),一般和主键一起使用
create table user4(
id int primary key auto_increment,
name varchar(20)
);
- 删除自动增长:
alter table user4 modify id int;(不会删除主键) - 表创建之后,添加自动增长:
alter table user4 modify id int auto_increment;
外键约束
foreign key,表与表产生关系
create table grade(
id int(4) not null primary key,
name varchar(36)
);
create table student (
sid int(4) not null primary key,
sname varchar(36),
gid int(4) not null
);
- 表创建之后添加外键:
alter table student add constraint FK_ID foreign key (gid) references grade (id); - 删除外键:
- alter table student drop foreign key FK_ID;