數據庫中有三個完整性: 域、實體、參照完整性數據庫
域(列)完整性:設計
- 域完整性是對數據表中字段屬性的約束
實體完整性在MySQL中實現:code
- 經過主鍵約束和候選鍵約束實現的
參照完整性:rem
- 也就是說是MySQL的外鍵
概念table
添加date
在建立表的時候添加: create .... defaultselect
id int default 1,
name varchar(20) default '老王'im
);數據
經過alter語句添加: alter .... modify/change ....異常
刪除
概念
添加
在建立表的時候添加: create .... not null
id int not null,
name varchar(20) not null
);
經過alter語句添加: alter .... modify/change ....
刪除
概念
添加惟一約束
在建立表的時候添加: create .... unique
id int unique,
name varchar(20) not null
);
- >insert t3 value (1, '老王'); insert t3 value (1, '老李'); -- id 惟一約束,添加異常 - create table t3( id int, name varchar(20) not null,
constraint id_unique unique(id, name) -- 添加複合約束
);
- >insert t3 value (1, '老王'); insert t3 value (1, '老李'); select * from t3; insert t3 value (1, '老王');
經過alter語句添加: alter .... modify/change .... / alter .... add unique
alter table t3 drop index id_unique;
概念
添加主鍵約束
在建立表的時候添加: create .... primary key
id int primary key,
name varchar(20)
);
- create table t3( id int, name varchar(20),
[constraint id_primary] primary(id, name) -- 聯合約束
經過alter語句添加: alter .... modify/change .... / alter .... add primary key ....
刪除主鍵
alter table t4 drop primary key;
概述
添加
在建立表的時候添加: create .... auto_increment
id int primary key auto_increment,
name varchar(20)
);
刪除自增加
注意:
概念
添加
在建立表的時候添加: create .... unsigned
id int,
age tinyint unsigned
);
刪除
概念
添加
在建立表的時候添加: create .... zerofill
id int,
age int(6) zerofill
);
刪除
經過創建外鍵,設置表與表之間的約束性,限制數據的錄入
員工表(從表) 部門表(主表) 員工號 員工姓名 部門名稱 部門號 部門名稱 1 張三 1 1 人力 2 李四 2 2 銷售 3 王五 3
概述
添加外鍵約束
empno int promary key auto_increment,
ename varchar(32) not null,
deptno int,
[constraint fk_name] foreign key(deptno) references dept(deptno) -- 添加外鍵約束
);
- create table dept( deptno int primary key auto_increment, dname varchar(32), loc varchar(32)
);
- 使用alter add constraint .... - alter table emp add constraint fk_name foreign key(deptno) references dept (deptno);
刪除外鍵約束
注意:
設置外鍵中的級聯關係
級聯刪除
empno int promary key auto_increment,
ename varchar(32) not null,
deptno int,
[constraint fk_name] foreign key(deptno) references dept(deptno) on delete cascade-- 添加外鍵約束
);
注意: