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.rhkb.cn/news/236599.html

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

相关文章

DNS域名解析以及操作流程

dns:将域名转化为IP地址的过程,域名方便人们记忆,ip地址过长,且都是数字,不方便记忆,所以才出现了域名。 怎么实现访问域名等于访问ip地址 1.老方法:写入文件里 /etc/hosts 左边 IP地址 右边域名 格式例…

Jenkins配置发邮件

Jenkins配置发邮件 账号设置 首先这个邮箱账号要支持发邮件,QQ邮箱开通SMTP即可之后要认证 企业微信邮箱 开启IMAP/SMTP服务开启POP/SMTP服务 无论是企业微信邮箱还是QQ邮箱都是SSL协议,在下面的配置中我都会勾选上!!&#xff0…

深入理解UML中的继承关系

深入理解UML中的继承关系 在面向对象的设计中,继承关系是构建清晰、可维护系统的关键。统一建模语言(UML)提供了一种标准化的方法来可视化这些关系。本文将深入探讨UML中的继承关系,并探讨它如何在代码中体现。 什么是继承关系&a…

sqlilabs第五十一五十二关

Less-51(GET - Error based - ORDER BY CLAUSE-String- Stacked injection) 手工注入 源码 单引号闭合用注释(没有后续输出只能堆叠注入) 自动注入 和上一关一样 Less-52(GET - Bind based - ORDER BY CLAUSE-numeric- Stacked injection) 手工注入 数字类型 不用注释直接…

iOS UI掉帧和卡顿优化解决方案记录

UI卡顿原理 在 VSync 信号到来后,系统图形服务会通过 CADisplayLink 等机制通知 App,App 主线程开始在 CPU 中计算显示内容,比如视图的创建、布局计算、图片解码、文本绘制等。随后 CPU 会将计算好的内容提交到 GPU 去,由 GPU 进行…

C#核心--实践小项目(贪吃蛇)

C#核心实践小项目 -- 贪吃蛇 必备知识点--多脚本文件 (可观看CSharp核心--52集进行了解) 必备知识点--UML类图 必备知识点--七大原则 贪吃蛇 项目展示 控制方向的是:WSAD 确定键是:J 需求分析(UML类图&#xff09…

强化学习应用(三):基于Q-learning的无人机物流路径规划研究(提供Python代码)

一、Q-learning简介 Q-learning是一种强化学习算法,用于解决基于马尔可夫决策过程(MDP)的问题。它通过学习一个价值函数来指导智能体在环境中做出决策,以最大化累积奖励。 Q-learning算法的核心思想是通过不断更新一个称为Q值的…

Ubuntu server配置ssh远程登录

使用如下命令进行安装 apt-get install ssh 安装好后启动 service ssh start 然后查看运行状态 然后用本机ping虚拟机 关闭本机和虚拟机防火墙 ufw disable 然后打开Xshell进行连接

学习Vue封装的过渡与动画总结

今天学习了Vue封装的过渡与动画&#xff0c;接下来说一下Vue是如何实现的&#xff0c;首先原生的方法是在style元素中给指定元素添加过渡的过渡或动画&#xff0c;但Vue就不需要直接获取到需要过渡或动画的元素&#xff0c;而是使用一个<transition>的标签来包裹住想要过…

鸿蒙Harmony--LocalStorage--页面级UI状态存储详解

走的太急疼的是脚&#xff0c;逼的太紧累的是心&#xff0c;很多时候&#xff0c;慢一点也没关系&#xff0c;多给自己一些耐心和等待&#xff0c;保持热爱&#xff0c;当下即是未来&#xff0c;生活自有安排! 目录 一&#xff0c;定义 二&#xff0c;LocalStorageProp定义 三…

如何设置gitlab.rb 将所有数据运行目录放置到指定目录

如何设置gitlab.rb 将所有数据运行目录放置到指定目录 在GitLab中&#xff0c;要将所有数据目录&#xff08;包括仓库、日志和其他配置文件&#xff09;移动到一个自定义位置&#xff0c;你需要编辑GitLab的配置文件 /etc/gitlab/gitlab.rb。这里主要关注的是 git_data_dir 配置…

无心剑中译卡明斯《从未游历之地》

Somewhere I Have Never Travelled 从未游历之地 Edward Estlin Cummings 爱德华埃斯特林卡明斯 somewhere i have never traveled, gladly beyond any experience, your eyes have their silence: in your most frail gesture are things which enclose me or which i can…

【VRTK】【Unity】【游戏开发】更多技巧

课程配套学习项目源码资源下载 https://download.csdn.net/download/weixin_41697242/88485426?spm=1001.2014.3001.5503 【概述】 本篇将较为零散但常用的VRTK开发技巧集合在一起,主要内容: 创建物理手震动反馈高亮互动对象【创建物理手】 非物理手状态下,你的手会直接…

Python异步编程|PySimpleGUI界面读取PDF转换Excel

目录 实例要求 原始pdf文件格式 输出xls文件格式 运行界面 完整代码 代码分析 遍历表格 布局界面 控件简介 写入表格 表格排序 事件循环 异步编程 实例要求 使用PySimpleGUI做一个把单位考勤系统导出的pdf文件合并输出Excel的应用&#xff0c;故事出自&#xff1…

Playwright 结合 Selenium Grid - 1.windows 环境使用教程

Playwright 可以连接到运行 Selenium 4 的 Selenium Grid Hub 来启动 Google Chrome 或 Microsoft Edge 浏览器,而不是在本地机器上运行浏览器。 下载Selenium Grid 打开selenium官方https://www.selenium.dev/downloads/下载Selenium Server (Grid) 目前最新版本4.16.1 下…

FPGA高端项目:12G-SDI 视频编解码,提供工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐我这里已有的 GT 高速接口解决方案我目前已有的SDI编解码方案 3、详细设计方案设计框图UltraScale GTH 的SDI模式应用UltraScale GTH 基本结构参考时钟的选择和分配UltraScale GTH 发送和接收处理流程UltraScale GTH 发送接口UltraScale G…

73应急响应-Web分析phpjavaWeb自动化工具

我感觉学完渗透自然就会应急响应&#xff0c;之前又发过应急响应的文章 应急响应笔记就开始比较潦草 应急响应基础知识 应急响应流程 保护阶段&#xff08;断网&#xff0c;避免继续渗透&#xff1b;备份&#xff09;&#xff0c;分析阶段&#xff08;分析攻击行为&#xf…

C++|44.智能指针

文章目录 智能指针unique_ptr特点一——无法进行复制 shared_ptr特点一——可复制特点二——计数器&#xff08;用于确定删除的时机&#xff09; 其他 智能指针 通常的指针是需要特殊地去申请对应的空间&#xff0c;并在不使用的时候还需要人工去销毁。 而智能指针相对普通的指…

用模方软件进行模型的透明贴图,为什么翻出来透明部分是黑的?

答&#xff1a;透贴需要用PNG格式。 模方是一款针对实景三维模型的冗余碎片、水面残缺、道路不平、标牌破损、纹理拉伸模糊等共性问题研发的实景三维模型修复编辑软件。模方4.1新增自动单体化建模功能&#xff0c;支持一键自动提取房屋结构&#xff0c;平均1栋复杂建筑物只需3…

了解ASP.NET Core 中的文件提供程序

写在前面 ASP.NET Core 通过文件提供程序来抽象化文件系统访问。分为物理文件提供程序(PhysicalFileProvider)和清单嵌入的文件提供程序(ManifestEmbeddedFileProvider)还有复合文件提供程序(CompositeFileProvider )&#xff1b;其中PhysicalFileProvider 提供对物理文件系统…