一、實體完整性
- 定義完整性是對關系中的記錄唯一性。
- 定義表的所有行能唯一的標識。
- 表中主屬性(字段)不能為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唯雄一約束的名字;