数据的完整性
1.实体的完整性:一个实体就是一条记录,如果记录无法区分,称之为失去了数据的完整性.
2.域完整性:如果两个字段无法区分,称之为失去了域的完整性.
3.引用的完整性:两个表的对应记录不完整.(不可避免的)
4.自定义完整性:自己制定的规则在实现后出现了偏差.
user
id | usename | pwd |
---|---|---|
1 | [email protected] | 123456 |
3 | [email protected] | 123456 |
userinfo
uid | name | sex | idcard | age | num |
---|---|---|---|---|---|
2 | 王大恒 | 男 | 不祥 | 18 | 1 |
19 | 贾乃亮 | 男 | 不详 | 32 | 2 |
select * from user left join userinfo on user.id=userinfo.num;
(1)保证实体的完整性
1.自动增长列(auto_increment)
2.主键的约束(primary key)
3.唯一键(unique)
(2)保证域的完整性
1.数据类型的约束
2.默认值约束
3.非空的约束
(3)保证引用的完整性
建立外键->只用主表有的,从表一定会有(从表中还不能删除)
(4)自定义完整性
1.存储过程(比较像python的自定义函数)
2.触发器