一、数据库三范式:建表时参考的规范
1、第一范式:
数据库表的每一列都是不可分割的原子数据项
2、第二范式:
满足第二范式(2NF)必须满足第一范式(1NF)。要求数据库表中的每个实例或记录必须可以被区分。选取一个能区分每一个实体 的属性或属性组,作为实体的唯一标识。(具体的数据依赖于主键)(每张表只放置对应的数据。如果存在多种数据,比方说商品信息和人员信息,分别把商品信息和人员信息建表去保存数据)
3、第三范式:
满足第三范式(3NF)必须先满足第二范式(2NF)。要求属性不依赖于其他非主属性。任何非主属性不得传递于主属性。例如:学生和学科的关系。学生表中存在学科表的主键或编号之后,不可以再存在学科的其他信息。如果没有学科表,当学科有关的字段过多时,也应该去创建对应的学科表,避免数据冗余。
4、第二范式和第三范式的区别:
第二范式的起点时一张大表是否可以拆分为多张小表。第三范式的起点是两张或多张表,如果发生关联,只允许存放对方表中主键或者编号等等
二、分页查询的原理
三、数据库的事务
事务就是为了保证一组数据库操作,要么全部成功,要么全部失败。
事务是再引擎层实现的,MyISAM不支持事务,这InnoDB支持事务。
1、事务的四大特征:ACID原理
2、事务的隔离级别分为四种
(1)事务的隔离级别目的:再并发状态下保证数据的正确性
3、隔离级别分别对应的并发问题出现的可能性
(1)MySQL的默认隔离级别是可重复读
四、SQL语句的注入问题
五、SQL的优化
(具体的SQL优化会具体写一篇文章)