MySQL进阶知识【详解】

一、数据库三范式:建表时参考的规范

1、第一范式:

数据库表的每一列都是不可分割的原子数据项

2、第二范式:

满足第二范式(2NF)必须满足第一范式(1NF)。要求数据库表中的每个实例或记录必须可以被区分。选取一个能区分每一个实体 的属性或属性组,作为实体的唯一标识。(具体的数据依赖于主键)(每张表只放置对应的数据。如果存在多种数据,比方说商品信息和人员信息,分别把商品信息和人员信息建表去保存数据)

3、第三范式:

满足第三范式(3NF)必须先满足第二范式(2NF)。要求属性不依赖于其他非主属性。任何非主属性不得传递于主属性。例如:学生和学科的关系。学生表中存在学科表的主键或编号之后,不可以再存在学科的其他信息。如果没有学科表,当学科有关的字段过多时,也应该去创建对应的学科表,避免数据冗余。

4、第二范式和第三范式的区别:

第二范式的起点时一张大表是否可以拆分为多张小表。第三范式的起点是两张或多张表,如果发生关联,只允许存放对方表中主键或者编号等等

二、分页查询的原理

MySQL进阶知识【详解】_第1张图片

三、数据库的事务

事务就是为了保证一组数据库操作,要么全部成功,要么全部失败。
事务是再引擎层实现的,MyISAM不支持事务,这InnoDB支持事务。

1、事务的四大特征:ACID原理

MySQL进阶知识【详解】_第2张图片

2、事务的隔离级别分为四种

(1)事务的隔离级别目的:再并发状态下保证数据的正确性
MySQL进阶知识【详解】_第3张图片

3、隔离级别分别对应的并发问题出现的可能性

(1)MySQL的默认隔离级别是可重复读
MySQL进阶知识【详解】_第4张图片

四、SQL语句的注入问题

MySQL进阶知识【详解】_第5张图片

五、SQL的优化

MySQL进阶知识【详解】_第6张图片
(具体的SQL优化会具体写一篇文章)

你可能感兴趣的:(mysql,mysql,数据库,java)