MySQL面试题 | 03.精选MySQL面试题

在这里插入图片描述

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6
🍨 阿珊和她的猫_CSDN个人主页
🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》
🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入门到实战全面掌握 uni-app》

文章目录

    • 9. 什么是外键?有什么作用?
    • 10. MySQL 支持的数据类型有哪些?请列举一些常用的数据类型。
    • 11. 什么是事务?MySQL 如何处理事务?
    • 12. 解释 ACID 原则。

9. 什么是外键?有什么作用?

外键(Foreign Key)是一个数据库中用于关联两个表的约束,它用于保证两个表之间的数据完整性。外键通常包含一个或多个列,可以是复合外键(由多个列组成)

外键的作用主要有以下几个方面:

  1. 关联数据:外键关联两个表之间的数据,保证数据的完整性,即在删除或更新一个表中的记录时,必须先删除或更新关联表中的相应记录。
  2. 索引:外键是一个索引,可以加速数据的查询和更新操作。
  3. 约束:外键可以用于定义外键约束,从而保证外键列的值与主键列的值保持一致。

在 MySQL 中,每个表可以有一个或多个外键,但每个表只能有一个主键。外键可以用于定义主键约束,从而保证主键列的值与关联表的主键列的值保持一致。

外键可以用于定义不同表之间的关联关系,如一对多、多对一、多对多等。外键可以保证数据的完整性和一致性,同时可以提高查询效率。

10. MySQL 支持的数据类型有哪些?请列举一些常用的数据类型。

MySQL 支持的数据类型主要有以下几种:

  1. 整数类型:整数类型用于存储整数数据,如 INT、INTEGER、BIGINT、SMALLINT、TINYINT 等。
  2. 浮点类型:浮点类型用于存储浮点数数据,如 FLOAT、DOUBLE、DECIMAL、NUMERIC 等。
  3. 字符类型:字符类型用于存储字符串数据,如 CHAR、VARCHAR、NCHAR、NVARCHAR、LONGTEXT、TEXT、TINYTEXT 等。
  4. 日期和时间类型:日期和时间类型用于存储日期和时间数据,如 DATE、DATETIME、TIMESTAMP、TIME、YEAR 等。
  5. 枚举类型:枚举类型用于存储一组固定的值,如 ENUM、SET 等。
  6. 布尔类型:布尔类型用于存储布尔值,如 BOOLEAN、BOOL 等。
  7. 二进制类型:二进制类型用于存储二进制数据,如 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 命令来控制。

事务的处理过程如下:

  1. start transaction:开始一个事务。
  2. 执行一系列数据库操作,例如插入、更新、删除等。
  3. commit:提交事务,将事务期间执行的所有数据库操作保存到磁盘。
  4. 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)中事务的四个关键属性,它们确保了数据库操作的完整性和一致性。

  1. Atomicity(原子性):一个事务的所有数据库操作都是原子性的,要么全部成功,要么全部失败,不会出现部分成功部分失败的情况。这可以确保事务的一致性和完整性。
  2. Consistency(一致性):事务执行过程中,数据库的完整性不会被破坏,数据始终保持一致。这可以确保数据的完整性。
  3. Isolation(隔离性):每个事务可以看到的是数据库的一个快照,即在事务开始之前的数据库状态,不会受到其他事务的影响。这可以确保事务隔离性。
  4. Durability(持久性):事务结束后,数据库中的数据会被永久保存,即使数据库崩溃或重启,数据也不会丢失。这可以确保数据的持久性。

ACID 原则是数据库管理系统中事务处理的基本准则,确保了数据库操作的安全性和一致性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/344750.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tp5+微信公众号服务器配置时使用官方sdk还是token验证失败

tp5微信公众号服务器配置时使用官方sdk还是token验证失败,使用之前项目的源码也是校验token不存在 检查常见问题 1、php文件编码问题 使用IDEA查看是否为UTF-8编码 2、检查微信后台Token(令牌)前后是否有空格 3、检查微信后台Token与服务器后台Token是否一致 …

数据结构中的一棵树

一、树是什么? 有根有枝叶便是树!根只有一个,枝叶可以有,也可以没有,可以有一个,也可以有很多。 就像这样: 嗯,应该是这样: 二、一些概念 1、高度 树有多高&#x…

打印的前后顺序

面试题经常会有 <script>console.log(1)setTimeout(function(){console.log(2)})console.log(3)let pnew Promise((resolve,reject) >{console.log(4)resloved(hhhhhh)})p.then(res >{console.log(res)console.log(5)},res >{console.log(7)})console.log(6)&l…

redis(14):缓存雪崩、击穿、穿透及其处理方式

1 Redis 缓存过程 通常后端会采用Mysql等磁盘数据库,可以持久化但是访问慢,高并发时性能差,需要设置Nosql内存型数据库缓存:Redis等; Redis 数据库运行在内存中,因此他的查询速度比 MySql 快的多。所以我们会把一些用户经常查询的数据放在 Redis 中,当 Redis 有的时候…

读元宇宙改变一切笔记06_虚拟世界引擎

1. 一棵虚拟的树在虚拟森林里倒下了 1.1. 它们都是数据和代码 1.2. 数据可以描述虚拟对象的属性 1.2.1. 尺寸或颜色 1.3. 为了让我们的树由CPU处理并由GPU渲染&#xff0c;这些数据需要通过代码运行 1.4. 该代码必须是运行虚拟世界的更广泛代码框架的一部分 2. 现实世界 …

真实可用,Xshell7 期待您的安装使用

xshell https://pan.baidu.com/s/1OKC1sQ1eYq6ZSC8Ez5s0Fg?pwd0531 1.鼠标右击【Xshell7.zip】压缩包&#xff08;win11及以上系统需先点击“显示更多选项”&#xff09; 2.双击Xshell-7.0.0065.exe 执行安装操作 3.选择【是】 4.点击【下一步】 5.选择【我接受...】 6.点击…

数字图像线性滤波——方框、均值、高斯滤波及opencv(C++)实现示例

数字图像线性滤波——方框、均值、高斯滤波及opencv&#xff08;C&#xff09;实现示例 一、图像滤波概念简介二、方框滤波及opencv实现示例1、方框滤波的公式2、opencv方框滤波boxfilter()函数&#xff08;1&#xff09;函数介绍&#xff08;2&#xff09;opencv实现实例&…

网络安全全栈培训笔记(52-WEB攻防-通用漏洞弱口令安全社工字典生成服务协议web应用)

第52天 WEB攻防-通用漏洞&弱口令安全&社工字典生成&服务协议&web应用 知识点&#xff1a; 1、弱口令安全&配置&初始化等 2、弱口令对象&Web&服务&应用等 3、弱口令字典&查询&列表&列表等 #前置知识&#xff1a; 弱口令(weak…

Linux第27步_在虚拟机中安装“设备树编译工具”

设备树英文名字叫做Device tree&#xff0c;用来描述板子硬件信息的&#xff0c;比如开发板上的 CPU有几个核 、每个CPU核主频是多少&#xff0c;IIC、SPI这些外设的寄存器范围是多少&#xff0c;IIC接口下都挂了哪些设备等等。 设备树文件是一种文本格式的文件&#xff0c;方…

分享一个使用python FastApi创建服务的简易模版,与使用http/python请求

这个博客分享一个fastapi的模版&#xff0c;并提供使用http/python访问的示例程序 文章目录 示例程序FastApi应用程序HTTP请求Python请求 示例程序 FastApi应用程序 下面是一个示例&#xff1a; 默认开启一个可以使用Get请求访问的URL&#xff1a;/example_connect这个请求有…

10.云原生之在线开发调试

文章目录 vscode-server介绍VSCode Server 和云开发结合vscode-server安装code-server安装插件在线安装插件离线安装插件安装中文插件 配置开发环境在容器中安装开放环境Dockerfile制作镜像 git拉取项目 vscode-server介绍 VSCode Server&#xff08;Visual Studio Code Serve…

基于STM32和ESP8266的物联网应用开发与实现

基于STM32和ESP8266的物联网应用开发与实现可以实现智能家居、智能工业、环境监测等多种应用&#xff0c;它将结合STM32微控制器的实时控制能力和ESP8266无线通信模块的WiFi连接能力。在本文中&#xff0c;我们将介绍如何设计和实现这样的物联网应用&#xff0c;并提供相关的代…