🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6
🍨 阿珊和她的猫_CSDN个人主页
🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》
🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入门到实战全面掌握 uni-app》
9. 什么是外键?有什么作用?
外键(Foreign Key)是一个数据库中用于关联两个表的约束,它用于保证两个表之间的数据完整性。外键通常包含一个或多个列,可以是复合外键(由多个列组成)。
外键的作用主要有以下几个方面:
- 关联数据:外键关联两个表之间的数据,保证数据的完整性,即在删除或更新一个表中的记录时,必须先删除或更新关联表中的相应记录。
- 索引:外键是一个索引,可以加速数据的查询和更新操作。
- 约束:外键可以用于定义外键约束,从而保证外键列的值与主键列的值保持一致。
在 MySQL 中,每个表可以有一个或多个外键,但每个表只能有一个主键。外键可以用于定义主键约束,从而保证主键列的值与关联表的主键列的值保持一致。
外键可以用于定义不同表之间的关联关系,如一对多、多对一、多对多等。外键可以保证数据的完整性和一致性,同时可以提高查询效率。
10. MySQL 支持的数据类型有哪些?请列举一些常用的数据类型。
MySQL 支持的数据类型主要有以下几种:
- 整数类型:整数类型用于存储整数数据,如 INT、INTEGER、BIGINT、SMALLINT、TINYINT 等。
- 浮点类型:浮点类型用于存储浮点数数据,如 FLOAT、DOUBLE、DECIMAL、NUMERIC 等。
- 字符类型:字符类型用于存储字符串数据,如 CHAR、VARCHAR、NCHAR、NVARCHAR、LONGTEXT、TEXT、TINYTEXT 等。
- 日期和时间类型:日期和时间类型用于存储日期和时间数据,如 DATE、DATETIME、TIMESTAMP、TIME、YEAR 等。
- 枚举类型:枚举类型用于存储一组固定的值,如 ENUM、SET 等。
- 布尔类型:布尔类型用于存储布尔值,如 BOOLEAN、BOOL 等。
- 二进制类型:二进制类型用于存储二进制数据,如 BINARY、VARBINARY、TINYBLOB、MEDIUMBLOB、LONGBLOB 等。
以下是几个常用的数据类型:
- INT:用于存储整数数据,默认值为 0,最大值为 2^31 - 1,最小值为 -2^31。
- FLOAT:用于存储浮点数数据,默认值为 0.0,最大值为 1.7976931348623157E308,最小值为 -1.7976931348623157E308。
- VARCHAR:用于存储变长的字符串数据,最大长度受限于 server 配置中的 max_allowed_packet 参数。
- DATE:用于存储日期数据,格式为 ‘YYYY-MM-DD’。
- DATETIME:用于存储日期和时间数据,格式为 ‘YYYY-MM-DD HH:MM:SS’。
- BOOLEAN:用于存储布尔值,取值范围为 0 或 1。
11. 什么是事务?MySQL 如何处理事务?
事务(Transaction)是一个数据库操作的集合,用于确保数据的一致性和完整性。在 MySQL 中,事务可以通过 start transaction、commit 和 rollback 命令来控制。
事务的处理过程如下:
- start transaction:开始一个事务。
- 执行一系列数据库操作,例如插入、更新、删除等。
- commit:提交事务,将事务期间执行的所有数据库操作保存到磁盘。
- rollback:回滚事务,将事务期间执行的所有数据库操作撤销,回到事务开始前的状态。
MySQL 处理事务时遵循 ACID 原则,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。
- 原子性:一个事务的所有数据库操作都是原子性的,要么全部成功,要么全部失败,不会出现部分成功部分失败的情况。
- 一致性:事务执行过程中,数据库的完整性不会被破坏,数据始终保持一致。
- 隔离性:每个事务可以看到的是数据库的一个快照,即在事务开始之前的数据库状态,不会受到其他事务的影响。
- 持久性:事务结束后,数据库中的数据会被永久保存,即使数据库崩溃或重启,数据也不会丢失。
MySQL 支持多种事务隔离级别,如:
- 读未提交(Read Uncommitted):允许一个事务在未提交的情况下读取其他事务的数据。
- 读提交(Read Committed):允许一个事务在事务提交后读取其他事务的数据。
- 事务提交(Transaction Isolated):允许一个事务在事务提交后读取其他事务的数据,但需要使用事务隔离级别进行隔离。
在 MySQL 中,默认的事务隔离级别为事务提交(Transaction Isolated),即事务提交后才能读取其他事务的数据。
12. 解释 ACID 原则。
ACID(Atomicity、Consistency、Isolation、Durability)是数据库管理系统(DBMS)中事务的四个关键属性,它们确保了数据库操作的完整性和一致性。
Atomicity
(原子性):一个事务的所有数据库操作都是原子性的,要么全部成功,要么全部失败,不会出现部分成功部分失败的情况。这可以确保事务的一致性和完整性。Consistency
(一致性):事务执行过程中,数据库的完整性不会被破坏,数据始终保持一致。这可以确保数据的完整性。Isolation
(隔离性):每个事务可以看到的是数据库的一个快照,即在事务开始之前的数据库状态,不会受到其他事务的影响。这可以确保事务隔离性。Durability
(持久性):事务结束后,数据库中的数据会被永久保存,即使数据库崩溃或重启,数据也不会丢失。这可以确保数据的持久性。
ACID 原则是数据库管理系统中事务处理的基本准则,确保了数据库操作的安全性和一致性。