SQL入门第五篇——约束
简介:
• 约束有:a. 非空约束:not nullb. 主键约束,primary keyc. 唯一约束,uniqued. 外键约束,foreign key
SQL入门第五篇——约束
约束的概念
- 在创建表的时候,是我们需要加上一些约束来保证表的有效性,完整性
- 约束有:
- 非空约束:not null
- 主键约束,primary key
- 唯一约束,unique
- 外键约束,foreign key
- 检查约束:check(mysql不支持,Oracle支持)
- 非空约束
这里就是值不能为空,没什么好写的
- 唯一约束
例如:name和email两个字段联合起来具有唯一性
create table t_vip(
id int,
name varchar(255) unique,
email varchar(255) unique
);
这张表这样创建是不符合新需求的,原因是:name具有唯一性,email具有唯一性。各自唯一,我们要的是一起唯一
如果我们需要插入下面这张表的话,肯定会失败,我们需要的是成功
insert into t_vip(id,name,email) values(1,'zhangsan','2343423@..com');
insert into t_vip(id,name,email) values(2,'zhangsan','2343423@..com');
那么需要怎么样创建呢?
create table t_vip(
id int,
name varchar(255),
email varchar(255),
unique(name,email)
);
这样就可以了
- 这叫什么呢?第一种创建方式是列级约束第二种是表级约束
什么时候使用表级约束呢?需要给多个字段联合起来添加某个约束的时候,需要使用表级约束
- 主键约束
- 主键约束的相关术语?
- 主键约束:就是一种约束
- 主键字段:在字段上添加了主键约束,这样的字段叫主键字段
- 主键值:主键字段中的每一个值都叫做:主键值
- 特征:not null + unique(非空且唯一)
create table t_vip(
id int primary key,(这种是单一列级主键)
name varchar(255),
primary key(id,name)(这种是复合表级主键)
);
那么在实际开发中,不建议使用:复合主键,一般都为单一主键,复合主键太复杂.并且创建表的时候要注意表的主键主键只能有一个,主键值建议使用:int bigint char 等类型不建议使用varchar