数据库中有三个完整性: 域、实体、参照完整性数据库
域(列)完整性:设计
- 域完整性是对数据表中字段属性的约束
实体完整性在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-- 添加外键约束
);
注意: