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

news2024/9/30 21:33:02

在这里插入图片描述

🤍 前端开发工程师(主业)、技术博主(副业)、已过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.coloradmin.cn/o/1378645.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【linux】NIO中的FileChannel与mmap

FileChannel是Java NIO库中的一个类,用于对文件进行读写操作。它提供了一种高效的方式来读取、写入和操作文件。 使用FileChannel,你可以执行以下操作: 从文件读取数据到缓冲区(Buffer):你可以使用FileCh…

QT 小组件 列表框以及微调框

.cpp文件 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);QListWidgetItem *pPhone new QListWidgetItem;pPhone->setText("西瓜");pPhone->…

SCI一区级 | Matlab实现RIME-CNN-BiLSTM-Mutilhead-Attention多变量多步时序预测

SCI一区级 | Matlab实现RIME-CNN-BiLSTM-Mutilhead-Attention多变量多步时序预测 目录 SCI一区级 | Matlab实现RIME-CNN-BiLSTM-Mutilhead-Attention多变量多步时序预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现RIME-CNN-BiLSTM-Mutilhead-Attention多…

eclipse ADT安装及abap cds模版创建

文章目录 1.前提2.安装3.创建cds模版 abap cds 常用语法 https://blog.csdn.net/weixin_49198221/article/details/135531478?spm1001.2014.3001.5501 1.前提 需要了解版本关系: **1.eclipse:**2023-06 (4.28), 2023-09 (4.29), 2023-12 (4.30) 2.Windows: ​ 1.Windows …

java多线程(并发)夯实之路-线程池深入浅出

线程池 Thread Pool:线程池,存放可以重复使用的线程(消费者) Blocking Queue:阻塞队列,存放等待执行的任务(生产者) poll方法(有时限地获取任务)相对take注…

【每日小bug】——mybatis-plus拼接sql空格报错,根据时间聚合查询

mybatis-plus拼接sql报错 复制报错sql语句到navicat,字段之间缺少空格,补上就可以了 聚合sql 根据时间 json接收JsonFormat(timezone "GMT8", pattern "yyyy-MM-dd")DateTimeFormat(pattern "yyyy-MM-dd")private Date startTim…

如何为数据保护加上“安全锁”?

伴随着数字经济的日趋活跃,数据安全和隐私保护成为了各国政府和企业都十分重视的问题,纷纷加强了数据安全防护。但实际上,近几年数据泄露问题接连不断,虽然没有造成严重的后果,但也足以证明目前数据安全防护的紧迫性。…

使用 Github、Hugo 搭建个人博客

Hugo 静态网站构建手册:https://jimmysong.io/hugo-handbook/ 关键字:开源 博客 框架 1、GitHub Pages 官网:https://pages.github.com/ 文档:https://docs.github.com/zh Github Pages 简介 Websites for you and your project…

京东年度数据报告-2023全年度游戏本十大热门品牌销量(销额)榜单

同笔记本市场类似,2023年度游戏本市场的整体销售也呈下滑态势。根据鲸参谋电商数据分析平台的相关数据显示,京东平台上游戏本的年度销量累计超过350万,同比下滑约6%;销售额将近270亿,同比下滑约11%。 鲸参谋综合了京东…

2.idea查看不到git的提交文件

(1)查看日志 使用idea工具查看git提交日志,如下:项目名上右击,选择git->Show History (2)预期结果 (3)实际结果 只能看见此次提交的commit id,看不见所修…

leetcode 动态规划(爬楼梯、零钱兑换、完全平方数)

70. 爬楼梯&#xff08;进阶版&#xff09; 卡码网&#xff1a;57. 爬楼梯(opens new window) 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬至多m (1 < m < n)个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 注意&#xff1a;给定 n 是一个正…

用单片机设计PLC电路图

自记&#xff1a; 见另一篇文章&#xff0c;MOS驱动差了一个充电电容&#xff0c;栅极电容充电会有问题&#xff1b; 光耦用的直插&#xff0c;但板子用的贴片&#xff0c;此文档仅供参考 基本列出了PCB板情况&#xff0c;基础元器件&#xff0c;部分连接&#xff0c;原理等…

大厂设计师都在用Figma中文替代

设计原型别再只知道 Figma 了&#xff0c;现在百万设计师都在用 Figma 的中文替代——即时设计。即时设计是国内第一款基于 Web 的 UI 设计工具&#xff0c;它的出现的弥补了很多 Figma 在国内使用的局限性&#xff0c;凭借本土化的优势&#xff0c;免费使用的版本、丰富免费的…

【Leetcode】2696. 删除子串后的字符串最小长度

文章目录 题目思路代码 题目 2696. 删除子串后的字符串最小长度 思路 计算通过删除字符串中的 “AB” 和 “CD” 子串后&#xff0c;可获得的最终字符串的最小长度。 主要思路是使用一个栈来模拟字符串的处理过程&#xff0c;每次遍历字符串时&#xff0c;如果当前字符和栈…

Openstack组件glance对接swift

2、glance对接swift &#xff08;1&#xff09;可直接在数据库中查看镜像存放的位置、状态、id等信息 &#xff08;2&#xff09;修改glance-api的配置文件&#xff0c;实现对接swift存储&#xff08;配置文件在/etc/glance/glance-api.conf&#xff0c;建议先拷贝一份&#x…

野牛物联网-阿里云配置流程

1、 概述&#xff1a; 本文围绕阿里云物联网平台&#xff0c;实现设备上云、设备上报消息、云端订阅设备消息、云端下发指令到设备等服务&#xff0c;以野牛物联网YNK-MN316设备接入物联网平台为例&#xff0c;介绍设备如何接入物联网平台&#xff0c;向平台上报消息等。帮助您…

Bug:Goland左侧丢失项目结构(Goland常用快捷键)

Goland快捷键&小tips 1 常用快捷键 # 格式化代码 optioncommandL# 在项目中搜索文件中的内容 commandshiftF# 搜索.go文件 shiftshift&#xff08;按两次shift&#xff09;# 修改方法、变量&#xff08;同时替换引用处的名称&#xff09; fnshiftF6# 将选中代码抽取为方法…

验证端口连通性的工具 telent nc

验证端口连通性的工具 telent nc 1、怎么验证端口连通性的工具2、telnet3、nc 1、怎么验证端口连通性的工具 telent nc这2个工具都可以验证端口连通性 2、telnet 命令格式 默认是验证tcp端口连通性 telnet ip port如果需要验证udp端口连通性 需要加上 -u telnet -u ip por…

操作系统期末考复盘

简答题4题*5 20分计算题2题*5 10分综合应用2题*10 20分程序填空1题10 10分 1、简答题&#xff08;8抽4&#xff09; 1、在计算机系统上配置OS的目标是什么&#xff1f;作用主要表现在哪个方面&#xff1f; 在计算机系统上配置OS&#xff0c;主要目标是实现:方便性、…

电脑/设备网络共享给其他设备上网

文章目录 一、概述二、设置网络共享2.1 电脑可以上网&#xff0c;通过网络共享让其他设备也可以上网2.2 手机如何使用USB数据线共享网络给电脑 一、概述 现在有如下几种情况&#xff1a; 设备本身不能上网&#xff0c;需要通过电脑上网 笔记本WIFI连热点上网&#xff0c;然后…