一、实体完整性
- 定义完整性是对关系中的记录唯一性。
- 定义表的所有行能唯一的标识。
- 表中主属性(字段)不能为null且不能有相同值。
- 一般用主键、唯一索引、unique关键字来实现。
二、实体完整性-主键约束
主关键字(primary key)是表汇总的一个或多个字段,它的值用于唯一的标识表中的某一条记录。创建表的时候可以指定,也可以创建好以后指定主键。
说明:主键约束:唯一,不重复,不能为空,primary key一个表中有且只有一个主键约束。
1、创建表的同时创建主键约束
格式一:
create table表名(
列名1 数据类型 primary key,
列名2 数据类型
);
格式二:
create table表名(
列名1 数据类型,
列名2 数据类型,
constraint 主键约束的名字
格式三︰
create table表名(
列名1 数据类型,
列名2 数据类型,
primary key(列名1)
);
2、通过alter语句添加主键约束
- Alter table user modify user_id INT(10)primary key;
- Alter table user add primary key(user_id);
- Alter table user add constraint pk_id primary key(user_id)
3、删除主键约束
Alter table user drop primary key;
4、联合主键
指的是把两个列看成是一个整体,这个整体是不为空,唯一,不重复。两个列共同作为表的主键。
(1)创建表的同时创建联合主键
格式一:
create table表名(
列名1数据类型,
列名2数据类型,
constraint 主键约束的名字 primary key(列名1,列名2));
格式二:
create table表名(
列名1 数据类型,
列名2 数据类型,
primary key(列名1,列名2));
(2)针对已经存在表,添加联合主主键
格式一:
alter table 表名 add primary key(列名1,列名2);
格式二∶
alter table表名 add constraint 主键约束的名字 prirbary key(列名1,列各2);
三、实体完整性-唯一性约束
- 唯一约束是指定table的列或列组合不能重复,保证数据的唯一性;
- 唯一约束不允许出现重复的值,但可以为多个null;
- 同一个表可以有多个唯一约束,多个列组合的约束;
- 如果不给唯一约束名称,默认名称和列名相同;
- MySQL会给唯一约束的列上默认创建一个唯一索引。
1、添加唯一性约束
格式一
create table表名(
列名1数据类型,
列名2数据类型,
constraint 唯一约束的名字 unique(列名1),
constraint 唯一约束的名字
);
格式二:
create table表名(
列名1 数据类型 unique,
列名2 数据类型 unique,
列名3 数据类型
)
2、针对已经存在的表,添加唯一约束
格式: alter table表名add unique(列名1,列名2])
3、删除唯一约束
格式:alter table表名drop index唯雄一约束的名字;