约束
约束
1.键约束
(1)主键约束:
(2)唯一键约束
(3)外键约束
2.非空约束
3.默认值约束
4.自增
5.检查约束(mysql不支持)
(一)主键约束
1.概述
Primary key
非空+唯一
每张表必须有主键约束
2.分类
单列主键约束
复合主键约束
3.使用主键约束
(1)创建表时
--方式1
create table dept(
id int primary key,
name char
)
--方式2
create table dept(
id int ,
name char,
primary key(id)
)
(2)创建表后
alter table dept add primary key(id);
4.删除主键约束
alter table dept drop primary key;
4.复合主键
(1)建表时
--方式1
create table dept(
age int ,
name char,
primary key(age,name)
)
--方式2
create table dept(
id int ,--没有业务意义,只是唯一标识
age int ,
name char,
primary key(id)
)
(2)见表后
alter table dept add primary key(age,name);
(二)唯一键约束
1.概述
unique key
唯一
和主键区别:
主键不能为空,唯一键可以为空
一个表只能有一个主键约束,唯一键可以有多个
2.使用唯一键
(1)建表时
--方式1
create table emp(
id int primary key,
age int ,
name char,
idcard varchar(20) unique key
)
--方式2
create table emp(
id int ,
age int ,
name char,
idcard varchar(20),
primary key(id),
unique key(idcard)
)
--方式3
create table emp(
id int ,
age int ,
name char,
idcard varchar(20),
primary key(id),
unique key(idcard,name)
)
(2)建表后
alter table dept add unique key(age,name);
3.删除主键约束
alter table dept drop index 索引名
alter table dept frop index idcard;
索引:index
作用:提高查询效率
键约束(主键,唯一键,外键)会自动添加索引
查询索引名: show index from 表名称;
(三)非空和默认值约束
1. 建表时
create table emp(
id int primary key,
age int not null default 20 ,
name char not null,
idcard varchar(20) unique key
)
insert into emp values(1,18,"张山","111")
insert into emp values(1,defalut,"王五","333")
insert into emp (id,name.idcard) values(2,"李四","222")
2.建表后
alter table emp modify iacard varchar(20) not null default "888"
3.删除
alter table emp modify iacard varchar(20)
(四)自增约束
1.概述
一个表只能有一个自增列
自增列必须是整型
自增列必须是键列(主键,唯一键)
2.创建自增列
create table emp(
id int primary key auto_increment,
name char not null
)
insert into emp values(2,"张山");
insert into emp(name) values("李四");
insert into emp values(0,"王五");
insert into emp values(null,"赵六");
posted on 2020-06-11 09:39 happygril3 阅读(157) 评论(0) 收藏 举报
浙公网安备 33010602011771号