关系型数据库是以表作为实体,以主键和外键的关联关系作为联系的数据库结构。
删除数据:DELETE会记录日志,意味着删除后的数据还可以恢复,但是效率低。TRUNCATE不会记录日志,删除后的数据不能恢复,但是效率高。
数据完整性:
可靠性+准确性=数据完整性
数据完整性的分类:
1.实体完整性
保证一行数据是有效的
概念:
保证每行所代表的实体能相互区别,不能存在两条一模一样的记录
实现方法:
主键约束:
主键不能为空,也不能重复。一个表中只能有一个主题
唯一约束:
唯一约束是指给定列的所有制必须唯一,该列在表中每一行的值必须唯一 。它和主键约束的区别在于该列可以为空,并且可以在一张表中给多个列 设置唯一约束。
2.域完整性
保证一列数据是有效的
概念:
域完整性是指定列的输入有效性
实现方法:
1.非空约束
2.默认约束
3.检查约束
3.引用完整性
保证引用的编号是有效的
概念:
从表外键中出现的数据,必须在主表的主键列中出现。
实现方法:
外键概念:
外键是指从表的某列与主键的某列存在依附关系
外键约束:
外键约束是指在外键关联主键上强制加上一个约束,如果违反该约束,则 不允许该条数据的修改。
常见聚合函数:
count:统计行数量
sum:获取单个列的合计值
AVG:计算某个列的平均值
MAX:计算列的最大值
MIN:计算列的最小值
SQL执行顺序:
第一步:执行FROM
第二步:WHERE条件筛选
第三步:GROUP BY 分组
第四步:执行SELECT投影列
第五步:HAVING 条件筛选
第六步:执行ORDER BY排序
HAVING和WHERE的区别:
二者都是过滤条件,WHERE运行在分组之前,因此不能执行任何聚合函数。HAVING是运行在分组之后,只能用做聚合函数的过滤。
删除数据:DELETE会记录日志,意味着删除后的数据还可以恢复,但是效率低。TRUNCATE不会记录日志,删除后的数据不能恢复,但是效率高。
数据完整性:
可靠性+准确性=数据完整性
数据完整性的分类:
1.实体完整性
保证一行数据是有效的
概念:
保证每行所代表的实体能相互区别,不能存在两条一模一样的记录
实现方法:
主键约束:
主键不能为空,也不能重复。一个表中只能有一个主题
唯一约束:
唯一约束是指给定列的所有制必须唯一,该列在表中每一行的值必须唯一 。它和主键约束的区别在于该列可以为空,并且可以在一张表中给多个列 设置唯一约束。
2.域完整性
保证一列数据是有效的
概念:
域完整性是指定列的输入有效性
实现方法:
1.非空约束
2.默认约束
3.检查约束
3.引用完整性
保证引用的编号是有效的
概念:
从表外键中出现的数据,必须在主表的主键列中出现。
实现方法:
外键概念:
外键是指从表的某列与主键的某列存在依附关系
外键约束:
外键约束是指在外键关联主键上强制加上一个约束,如果违反该约束,则 不允许该条数据的修改。
常见聚合函数:
count:统计行数量
sum:获取单个列的合计值
AVG:计算某个列的平均值
MAX:计算列的最大值
MIN:计算列的最小值
SQL执行顺序:
第一步:执行FROM
第二步:WHERE条件筛选
第三步:GROUP BY 分组
第四步:执行SELECT投影列
第五步:HAVING 条件筛选
第六步:执行ORDER BY排序
HAVING和WHERE的区别:
二者都是过滤条件,WHERE运行在分组之前,因此不能执行任何聚合函数。HAVING是运行在分组之后,只能用做聚合函数的过滤。