2023 最新 MySQL 高频面试题汇总
事务的四大特性?
事务特性 ACID:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、
持久性(Durability)。
原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚。
一致性是指一个事务执行之前和执行之后都必须处于一致性状态。比如 a 与 b 账户
共有 1000 块,两人之间转账之后无论成功还是失败,它们的账户总和还是 1000。
隔离性。跟隔离级别相关,如 read committed,一个事务只能读到已经提交的修
改。
持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,
即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。
数据库的三大范式
第一范式 1NF
确保数据库表字段的原子性。
比如字段 userInfo: 广东省 10086' ,依照第一范式必须拆分成 userInfo: 广东
省 userTel:10086 两个字段。
第二范式 2NF
首先要满足第一范式,另外包含两部分内容,一是表必须有一个主键;二是非主
键列必须完全依赖于主键,而不能只依赖于主键的一部分。
举个例子。假定选课关系表为 student_course(student_no, student_name, age,
course_name, grade, credit),主键为(student_no, course_name)。其中学分完全依
赖于课程名称,姓名年龄完全依赖学号,不符合第二范式,会导致数据冗余(学
生选 n 门课,姓名年龄有 n 条记录)、插入异常(插入一门新课,因为没有学号,
无法保存新课记录)等问题。
应该拆分成三个表:学生:student(stuent_no, student_name, 年龄);课程:
course(course_name, credit);选课关系:student_course_relation(student_no,
course_name, grade)。
第三范式 3NF