即将进行数据工程或数据科学面试吗?需要练习一些最常见的 MySQL 面试问题吗?文章整理了你应该知道的 MySQL 面试问题列表。
常见的 MySQL 面试问题和答案
1.什么是MySQL?
MySQL 是最流行的开源DBMS(数据库管理系统)之一。MySQL 易于使用、可靠且快速。适用于嵌入式系统以及客户端-服务器系统的数据库管理系统。
2. MySQL为什么这么受欢迎?
首先,MySQL 是开源的。其次,它被广泛采用,因此已经有很多代码可用。甚至整个开发的系统都可以用于即将到来的项目。MySQL有关系数据库;因此,它使其具有有条不紊的存储,而不是一大堆杂乱无章的垃圾。最后,如前所述,MySQL 既快速又健壮。
3. MySQL中有哪些表?解释类型。
这是一道必知的 MySQL 面试题。来看看答案——
MySQL 将所有内容存储在逻辑表中。表可以被认为是 MySQL 的核心存储结构。因此表也被称为存储引擎。以下是 MySQL 提供的存储引擎:
· MyISAM – MyISAM 是 MySQL 的默认存储引擎。它扩展了以前的 ISAM 存储引擎。MyISAM 提供高达 256TB 的大容量存储空间!这些表也可以被压缩以获得额外的存储空间。MyISAM 表不是事务安全的。
· MERGE – MERGE 表是一个虚拟表,它整合了与一个表具有可比结构的不同 MyISAM 表。MERGE 表使用基表的索引,因为它们没有自己的索引。
· ARCHIVE – 顾名思义,Archive 通过压缩表来帮助归档表,从而减少存储空间。因此,您可以使用存档存储大量记录。它在写入和读取表记录时使用压缩-解压缩过程。它是使用 Zlib 库完成的。
· CSV—— 这更像是一种存储格式。CSV 引擎以逗号分隔值 (CSV) 格式存储值。该引擎可以更轻松地将表迁移到非 SQL 管道中。
· InnoDB – InnoDB 在选择引擎来驱动性能时是最优化的。InnoDB 是一个事务安全的引擎。因此它是 ACID 兼容的,并且可以在崩溃的情况下有效地将您的数据库恢复到最稳定的状态。
·内存——内存表以前称为 HEAP。使用内存表,可以提高性能,因为表存储在内存中。但由于同样的原因,它不适用于大型数据表。
·联合 ——联合表允许访问远程 MySQL 服务器表。它可以在没有任何第三方集成或集群技术的情况下完成。
4. 在 MySQL 中编写一个列添加查询
这是重要的MySQL 查询面试问题之一。为此,需要 ALTER TABLE 查询。一旦被调用,只需提及该列及其定义。像这样的东西:
ALTER TABLE cars
在颜色之后添加列引擎 VARCHAR(80);
5. 什么是外键?编写一个查询以在 MySQL 中实现相同的功能。
这是适用于初学者和有经验的候选人的流行MySQL 查询面试问题之一。 外键用于连接两个表。FOREIGN KEY 是一个表中的一个字段(或它的分类),它暗示另一个表中的 PRIMARY KEY。FOREIGN KEY 要求用于防止破坏表之间连接的活动。
要分配外键,在创建表时提及它是很重要的。它可以通过调用 FOREIGN KEY 查询来分配。像这样的东西:
FOREIGN KEY (Any_ID) REFERENCES Table_to_reference(Any_ID)
6.什么是MySQL工作台?
MySQL Workbench 是数据库建模人员、设计人员和DBA绑定在一起的可视化工具。MySQL Workbench 提供数据建模、SQL 和服务器设置管理工具集。简单来说,MySQL Workbench 使通过 GUI 操作数据库管理系统成为可能。
7. MySQL 中的数据库导入/导出是如何工作的?
它可以通过两种方式完成。一是使用phpMyAdmin,二是使用MySQL的命令行访问。后者可以通过使用名为 mysqldump 的命令来完成。它是这样的:
· mysqldump -u 用户名 -p 数据库名 > dbsample.sql
要将数据库导入 MySQL,只需使用 MySQL 命令更改符号即可。命令是这样的:
· mysql -u 用户名 -p 数据库名 < dbsample.sql
8.我们如何删除MySQL中的一列或一行?
现在可以通过使用 ALTER TABLE 命令然后使用 DROP 命令来简单地删除列。它是这样的:
ALTER TABLE table_name DROP 列名;
要删除一行,首先需要该行的标识。方便后,将 DELETE 命令与条件 WHERE 命令结合使用。像这样的东西:
从 carID = 3 的汽车中删除;
9. MySQL中连接表的方法有哪些?
这是最重要的MySQL 数据库面试问题之一。
Join 用于将一个或多个表链接在一起,两个表中的公共列的值。主要有四种类型的连接:
1. 内连接——内连接使用连接谓词,这是用于进行连接的条件。这是语法:
SELECT something FROM tablename INNER JOIN another table ON 条件;
2. 左连接——左连接也需要一个连接条件。左连接选择从左表开始的信息。对于左表中的每个条目,左侧比较右表中的每个条目。这是语法:
SELECT something FROM tablename LEFT JOIN another table ON 条件;
3. 右连接——与左连接相反,查询的一个区别是连接的名称。这里应该注意表格的顺序。这是语法:
SELECT something FROM tablename LEFT JOIN another table ON 条件;
4. 交叉连接——交叉连接没有连接条件。它对两个表的行进行笛卡尔坐标系。这是语法:
SELECT something FROM tablename CROSS JOIN another table;
注意:在只处理一张表时,自连接也是可能的。
它是最受关注的 MySQL 面试问题之一。面试官确实喜欢看候选人是否了解基础知识并加入核心概念之一。
10. MySQL可以去掉主键吗?如果是,如何?
是的,可以从表中删除主键。再次使用的命令是 ALTER TABLE 后跟 DROP。它是这样的:
ALTER TABLE table_name 删除主键;
11. MySQL中的程序是什么?
这是一道 MySQL 基础面试题。彻底了解这一点非常重要。
过程(或存储过程)是嵌入数据库中的子程序,就像常规语言一样。存储过程由名称、SQL 语句和参数组成。它利用 MySQL 中的缓存,从而节省时间和内存,就像准备好的语句一样。
12. MySQL 中的触发器是什么?
触发器是 MySQL 中与表关联的数据库对象。当指定动作发生时它被激活。
可以在事件发生之后或之前调用触发器。它可以用于 INSERT、DELETE 和 UPDATE。它使用各自的语法来定义触发器。例如,在插入之前、删除之后等。
13. MySQL如何添加用户?
简单地说,可以通过使用 CREATE 命令并指定必要的凭据来添加用户。首先,登录 MySQL 帐户,然后应用语法。像这样的东西:
CREATE USER 'testuser' IDENTIFIED BY 'sample password';
可以通过以下命令授予用户权限:
授予选择*。* TO '测试用户';
14、Oracle和MySQL的核心区别是什么?
核心区别在于 MySQL 在单模型数据库上工作。这意味着它只能使用一个基本结构,而 Oracle 是一个多模型数据库。这意味着它可以支持各种数据模型,如图形、文档、键值等。
另一个根本区别是甲骨文的支持带有工业解决方案的价格标签。虽然 MySQL 是开源的。
现在这个问题是 MySQL面试问题 之一,应该仔细理解。因为它直接处理行业标准和公司想要的东西。
MySQL 是免费和开源的,而 Oracle 是商业和付费的。MySQL 比 Oracle 更可定制,因为 Oracle 是成品。
从软件的角度来看,Oracle 由于其额外的功能而更加强大。此外,它提供了更好的索引,因此它提供了优于 MySQL 的竞争优势。
15. MySQL中的CHAR和VARCHAR是什么?
这是关于 MySQL 的最重要的面试问题之一。
它们都定义了一个字符串。核心区别在于 CHAR 是固定长度,而 VARCHAR 是可变长度。例如,如果定义了 CHAR(5),那么它正好需要五个字符。如果定义了 VARCHAR(5),那么它最多可以占用五个字符。VARCHAR 可以说在内存使用上效率更高,因为它可以进行动态内存分配。
16. MySQL需要哪些驱动?
MySQL 中有多种类型的驱动程序。大多数情况下,它们用于连接不同的计算语言。下面列出了其中一些:
· PHP 驱动程序
· JDBC
· OBDC
· Python 驱动程序
· C – 包装器
· Perl 和 Ruby 驱动程序
17. 什么是 LIKE 语句?在 LIKE 中解释 % 和 _。
在 SELECT、UPDATE 和 DELETE 等命令中使用过滤器时,条件可能需要检测模式。LIKE 就是用来做这件事的。LIKE 有两个通配符,即 %(百分比)和 _(下划线)。Percentage(%) 匹配字符串,而下划线匹配单个字符。
例如,%t 将同时检测树木和茶。但是,_t 只会检测一个额外的字符,即像 ti 或 te 这样的字符串。
18. MySQL中如何将时间戳转换为日期?
这是一个相当简单的问题,需要了解两个命令,例如 DATE_FORMAT 和 FROM_UNIXTIME。
DATE_FORMAT(FROM_UNIXTIME(`date_in_timestamp`), '%e %b %Y') AS 'date_formatted'
19. MySQL 中是否可以编写查询?
这个 MySQL 面试问题经常让刚开始使用 MySQL 的人感到困惑。虽然大多数时候,查询是用大写字母或一些小写字母写的,但 MySQL 查询不区分大小写。
例如,create table tablename 和 CREATE TABLE tablename 都可以正常工作。
但是,如果需要,可以使用关键字 BINARY 使查询区分大小写。
这个 MySQL 面试问题 可能很棘手,尤其是在被要求明确区分大小写时。
20. 如何在 MySQL 中保存图片?
这是最基本的 MySQL 面试题之一。
图像可以通过将它们转换为 BLOBS 来存储在 MySQL 数据库中。但它不是首选,因为它会产生大量开销。另外,它在加载整个数据库时会给 RAM 带来不必要的负载。因此,最好将路径存储在数据库中并将图像存储在磁盘上。
21、如何从MySQL中的数据中获取多个条件结果?
有两种方法可以做到这一点。第一种是在使用 WHERE 条件时使用关键字 OR。另一种是使用值列表来检查和使用 IN 和 WHERE。
22. MyISAM 使用哪些不同的文件格式?
通常,MyISAM 表使用磁盘上的三个文件存储。数据文件和索引文件,分别以扩展名 .MYD 和 .MYI 定义。有一个扩展名为 .frm 的表定义文件。
23. DISTINCT 在 MySQL 中是如何工作的?
DISTINCT 用于在获取特定查询的结果时避免重复问题。DISTINCT 用于确保结果不包含重复值。DISTINCT 可以与 SELECT 子句一起使用。这是它的语法:
从表名中选择不同的东西;
24、表格的列数有上限吗?
尽管确切的大小限制取决于许多因素,但 MySQL 对最大大小的硬性限制为 4096 列。但如前所述,对于给定的表格,有效最大值可能会更小。
25. 根据 MySQL,什么是访问控制列表或 ACL?
ACL 或访问控制列表用于为 MySQL 数据库的安全性提供指导。MySQL 为用户执行的所有任务(如连接请求、查询和任何其他操作)提供基于 ACL 的安全性。
26. 如何在 MySQL 中使连接持久化?
在发出连接请求时,如果使用 mysql_pconnect 而不是 mysql_connect,那么它可以使连接持久化。这里的“p”意味着持久。不是每次都关闭数据库连接。
27. 解释 MySQL 中的 SAVEPOINT 语句。
SAVEPOINT 是在 MySQL 中进行子事务的一种方式,也称为嵌套事务。
SAVEPOINT 在常规事务中标记一个点。它指示系统可以回滚的点。
这是重要的MySQL 面试问题之一。MySQL 允许您在列的 VARBINARY 或 BINARY 数据类型的帮助下将二进制内容存储在表中。它可以存储文件内容,如图像、声音、视频、简单的二进制片段等。有两种方法可以保存图像。最普遍的方法是将文件名保存在 MySQL 表中,然后将图像上传到文件夹中。第二种方法是将图像直接存储在数据库中。
19. MySQL如何使用索引?
围绕索引准备MySQL 面试问题很重要。MySQL 使用索引来快速查找具有特定列值的行。它们还用于消除考虑中的行。当不使用索引时,MySQL 应该从第一行开始并通读整个表以找出相关行。桌子越大,成本就越高。表可能有相关列的索引。在这种情况下,MySQL 可以迅速决定在数据文件中心查找的位置,而无需查看所有数据。这个过程比顺序读取每一行要快得多。
30. 为什么 MySQL 优于其他数据库?
它是基本的MySQL 面试问题和答案之一。MySQL 在市场上强大的事务数据库引擎列表中占据主导地位。一致、完整的原子、隔离、持久的事务支持、多版本事务支持和不受限制的行级锁定等特性使其成为实现完整数据完整性的首选解决方案。此外,它为所有应用程序开发要求提供广泛支持。在 MySQL 数据库中,您可以找到对存储过程、函数、触发器、游标、视图、ANSI 标准 SQL 等的支持。这些针对新生的 MySQL 面试问题和答案测试了您对趋势技术的了解以及您在市场上的最新情况。
31. MySQL在哪里存储密码?
从用户数据安全的角度来看,这是重要的MySQL 面试问题和答案之一。MySQL 将密码存储在 MySQL 系统数据库的用户表中。修改或分配密码的操作只允许具有 CREATE USER 权限或 MySQL 数据库权限的用户。INSERT 权限用于创建新帐户,而 UPDATE 权限用于更改现有帐户。
32. MySQL 和 SQL 服务器是否相同?
不,MySQL 和 SQL 服务器是不同的。两者都是关系数据库管理系统,但它们在定价、用例、功能、许可优势等方面有所不同。MySQL 是通过 Oracle 提供的,而 SQL Server 是通过 Microsoft Corporation 提供的。
从数据安全的角度来看,SQL 服务器比 MySQL 服务器安全得多。在 SQL 中,第三方应用程序等外部进程无法直接访问或控制数据。另一方面,在 MySQL 中,您可以使用二进制文件在运行时轻松控制或更改数据库文件。 确保为新生准备这些基于比较的MySQL 面试问题和答案。
32. MySQL数据库是否加密?
这是针对经验丰富的专业人士的MySQL 面试问题之一。MySQL Enterprise TDE 允许通过加密数据库的物理文件来加密静态数据。在写入存储之前,数据会实时自动加密。然后在从存储中读取数据时对其进行解密。因此,恶意用户和黑客无法直接从数据库文件中读取敏感数据。MySQL Enterprise Encryption 允许您的企业通过混合私钥、公钥和对称密钥来保护数据。这些密钥有助于加密和解密数据。加密数据使用 DSA、RSA 或 DH 加密算法存储在 MySQL 中。
33. MySQL 可以存储 JSON 吗?
MySQL 允许由 RFC 7159 定义本机 JSON(JavaScript 对象表示法)数据类型。它提供对 JSON 文档中数据的有效访问。与将 JSON 格式的字符串存储在字符串列中相比,JSON 数据类型的主要优势之一是自动验证保存在 JSON 列中的 JSON 文档。但是无效的文档会产生错误。 保存在 JSON 列中的 JSON 文档被转换为允许对文档元素进行快速读取访问的内部格式。在为有经验的候选人准备MySQL 面试问题时,您可以考虑这个问题。
34. 为什么 MySQL 会意外关闭?
它是新人流行的MySQL 面试问题之一。MySQL意外关闭的原因是XAMPP中的“Error: MySQL Shutdown Unexpectedly”。常见的原因是丢失文件、损坏的文件、错误的数据库关闭和端口更改。当您在 Web 服务器上运行 MySQL 时,MySQL/data 文件夹中的损坏文件会导致 MySQL 意外关闭。启动 Apache 模块和 Apache 模块时可能会遇到此错误。
35. MySQL 和 MariaDB 是一样的吗?
它是新手和经验丰富的专业人士常见的MySQL 查询面试问题之一。MySQL 和 MariaDB 都使用标准 SQL 语法。此语法可以是通用表表达式、窗口函数以及 JSON 和地理空间函数。MariaDB 添加了 EXCEPT 和 INTERSECT 集合运算符、线性回归函数等等。
MariaDB 在执行复制或查询时比 MySQL 快。因此,如果您想要一个高性能的关系数据库解决方案,MariaDB 是一个不错的选择。此外,MariaDB 支持并发连接数,而不会显着降低性能。
36. 为什么我的 MySQL 不工作?
你可以在准备MySQL 新人面试问题时考虑这个问题。MySQL 不工作的两个原因是错误 (2002) 和错误 (2003)。错误(2002)“无法连接到……”通常意味着零个 MySQL 服务器在系统上运行。这也可能意味着您在连接到服务器时使用了错误的 TCP/IP 端口号或 Unix 套接字文件名。
错误 (2003) “Can't connect to MySQL server on 'server' (10061)”暗示网络连接已被拒绝。您必须确保 MySQL 服务器正在运行,网络连接已启用,并且您定义的网络端口是服务器上配置的网络端口。此外,您必须检查正在使用的 TCP/IP 端口是否未被端口阻止服务或防火墙阻止。37. MySQL什么时候锁表?
这些类型的MySQL 查询面试问题经常被问到检查候选人的 MySQL 能力。锁定机制限制了对表中数据的非法访问。MySQL 允许客户端会话显式获取表锁以与其他会话协作以访问表的数据。MySQL 允许表锁定以阻止在特定时间段内对同一表进行未经授权的修改。
MySQL session 可以仅为自己获取或释放 table 上的锁。因此,一个会话无法获取或释放其他会话的表锁。您应该具有 SELECT 权限和用于表锁定的 TABLE LOCK。
MySQL 一直是首选管理系统的原因
鉴于我们目前产生了多少信息,很容易理解为什么可靠的数据库结构在现代 Web 开发中至关重要。组织正在收集大量的定性和定量数据,但他们需要值得信赖的数据库软件和系统才能将这些数据用作竞争优势。虽然有多种数据库管理系统,但 MySQL 具有多种优势,并且通常是大型组织的首选。如果你正在准备MySQL 面试,阅读 MySQL 的基本概念和其他面试题,那么你也必须了解它的优势,因为它是最基本的 MySQL 面试题之一。
- 易于获得——数字公司和在线平台必须能够提供 24/7 全天候服务,因为它们拥有全球客户。因此,可访问性是 MySQL 的关键组成部分。它使用各种集群服务器和分布式数据库技术来保证即使在故障期间也能持续正常运行。为了保证数据不丢失,MySQL 还使用了几种恢复技术。
- 极其可靠——MySQL 背后的主要思想是速度。此外,它以作为数据库管理员的可靠性而闻名,并得到了一个庞大的编程社区的支持,该社区对代码进行了严格的测试。易于学习和使用它是另一个优点。此外,您可以在需要时轻松找到专业的 MySQL 开发人员,因为该技术已经存在了近 30 年。
- 安全——这通常是组织的一个重要因素,因为他们必须保存敏感信息并防御网络威胁。为了保护各种信息的完整性,MySQL 使用安全套接字层 (SSL) 协议、身份验证插件、数据屏蔽和其他安全级别提供加密。此外,MySQL 中还包含一个防止在线威胁的防火墙。
- 兼容数据库——这基本上意味着任何人都可以安装和使用基本程序,并且代码可以由第三方更改和定制。高级形式包括包含更多功能、容量和解决方案的分层价格结构。
大量的系统、计算机语言和数据库架构都与 MySQL 非常兼容。DBMS 替代品、SQL 和 NoSQL 数据库都包含在其中。此外,MySQL 包括广泛的数据库架构和数据建模功能,如概念数据模型或逻辑数据模型。因此,它成为许多企业的直接且有用的替代方案,同时忽略了对“锁定”系统的担忧。
- 可扩展——MySQL 存储必须随着数据量的增长而扩展。它必须能够处理增加的工作负载而不会降低性能。有几种技术可以扩展 MySQL,通常是通过复制或集群。它可以支持和处理非常大的数据库,尽管这样做可能会减慢它的速度。
LinkedIn、Pinterest、Quora、Shopify、Twitter、Uber、yelp、YouTube 和 Tumblr 是一些使用 MySQL 并发展壮大的大公司。了解这些公司将帮助您回答MySQL 的基本面试问题。MySQL 数据库面试问题通常很棘手,并且会使应聘者感到困惑。确保您的准备工作足够强大以面对这些!
结论
所以,这些是一些 MySQL 面试问题。要了解该主题和其他准备工作,请访问 upGrad 课程和 PG 计划,这些课程可帮助您找到正确的轨道和应用程序以提升您的职业生涯。
如果您想了解 SQL 以及有关全栈开发的更多信息,请查看 IIIT-B 和 upGrad 的 全栈软件开发执行 PG 计划, 该计划是为在职专业人士创建的,并提供 10 多个案例研究和项目,实用的手-研讨会、与行业专家的指导、与行业导师的一对一交流、400 多个小时的学习和顶级公司的工作协助。
MySQL是一种编程语言吗?
MySQL 并不是真正的编程语言。它是 Microsoft Corporation 的一个开源应用程序,用于数据库管理。MySQL 的功能基于 SQL(结构化查询语言),它是根据 ANSI 标准构建的,并被大多数数据库系统采用。SQL 是一种编程语言,用于操作数据库管理系统中包含的数据并对其进行管理。由于 MySQL 实现了 SQL 以及一些额外的特性和功能,因此它经常被混淆为另一种编程语言。它也可以被视为用于管理数据库系统的服务器端应用程序。
MySQL 与 NoSQL 有何不同?
MySQL 适用于包含结构化和格式良好的数据的关系数据库系统。另一方面,主要用于处理实时应用程序和大数据的 NoSQL 适用于包含非结构化数据的非关系数据库系统。MySQL 和 NoSQL 中使用的基本数据结构完全不同,因为每个数据库中包含的数据在结构上是不同的。MySQL 使用面向数据的结构,而 NoSQL 是面向文档的。再说一次,作为一个关系数据库系统,MySQL 中的某些操作似乎比 NoSQL 中的慢。NoSQL 具有高度可扩展性,而 MySQL 很难扩展。
MongoDB 比 MySQL 快吗?
MySQL 在事务方面提供了令人印象深刻的性能速度。但是,当数据量不断扩大时,它往往会变慢。发生这种情况是因为 MySQL 是一个关系数据库,它将数据存储在表中并通过不同的键连接。这需要更多时间来导航和获取数据。在执行速度方面,MongoDB 在非结构化数据上比 MySQL 快得多。MongoDB之所以非常快,是因为它是一个基于文档的数据库系统。由于其 JSON 类型的对象存储功能,它还在处理对象时提供了显着更快的性能。
原文标题:Top 27 MySQL Interview Questions & Answers For Beginners & Experienced [2022]
原文作者: Rohan Vats
原文链接:https://www.upgrad.com/blog/mysql-interview-questions-answers-for-beginners-experienced/




