关系数据库是以表作为实体,以主键和外键的关联关系作为联系的数据库结构
DELETE 删除会记录日志,意味着删除后的数据还可以恢复,但是效率低。TRUNCATE 删除不会记录日志,删除后的数据不能恢复,但是效率高。
为什么要保证数据库完整性?
会了防止垃圾数据的产生,从而影响数据库的执行效率。
可靠性+准确性 = 数据完整性
数据库完整性概述
1、实体完整性 保证一行数据是有效的
2、域完整性 保证一列数据是有效的
3、引用完整性 保证引用的编号是有效的
4、用户自定义完整性
实体完整性
保证每行所代表的实体能互相区别,不能存在两条一模一样的记录
实现方法:
1、主键约束 主键列不能为空,也不能重复,一个表中只能有一个主键
2、唯一约束 唯一约束是指给定列的所有值必须唯一,该列在表中每一行的值必须唯一。它和主键约束的区别在于该列可以为空,并且可以在一张表中给多个列设置唯一约束。
域完整性:域完整性是指定列的输入有效性,保证指定列的数据的有效性
实现方法:
1、 非空约束 NOT null (MySQL不支持)
2、 默认约束 Default
3、 检查约束 Check (MySQL不支持)
引用完整性—外键约束
从表外键中出现的数据,必须在主表的主键列中出现。
外键是指从表的某列与主表的某列存在依附关系
外键约束是指在外键关联主键上强制加上一个约束,如果违反该约束,则不允许该条数据的修改
注意:没有建立外键约束不等于没有外键