面向初学者和经验丰富的 27 个 MySQL 面试问题和答案 [2022]

已发表: 2021-01-07

即将进行数据工程或数据科学面试吗? 需要练习一些最常见的MySQL 面试题吗? 文章整理了你应该知道MySQL 面试问题列表。

学习构建 Swiggy、Quora、IMDB 等应用程序

常见的 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 服务器表。 它可以在没有任何第三方集成或集群技术的情况下完成。

阅读:用于数据科学的 SQL:为什么使用 SQL,优点和命令列表

4. 在 MySQL 中编写一个列添加查询

为此,需要 ALTER TABLE 查询。 一旦被调用,只需提及该列及其定义。 像这样的东西:

ALTER TABLE 汽车

在颜色之后添加列引擎 VARCHAR(80);

5. 什么是外键? 编写一个查询以在 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中连接表的方法有哪些?

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 面试问题之一 面试官确实喜欢看候选人是否了解基础知识并加入核心概念之一。

阅读:PHP 面试问答

10. MySQL可以去掉主键吗? 如果是,如何?

是的,可以从表中删除主键。 再次使用的命令是 ALTER TABLE 后跟 DROP。 它是这样的:

ALTER TABLE table_name 删除主键;

11. 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面试问题之一,应该仔细理解。 因为它直接处理行业标准和公司想要的东西。

15. MySQL中的CHAR和VARCHAR是什么?

它们都定义了一个字符串。 核心区别在于 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'

另请阅读: Java 面试问答

19. MySQL 中是否可以编写查询?

这个 MySQL 面试问题经常让刚开始使用 MySQL 的人感到困惑。 虽然大多数时候,查询是用大写字母或一些小写字母写的,但 MySQL 查询不区分大小写。

例如,create table tablename 和 CREATE TABLE tablename 都可以正常工作。

但是,如果需要,可以使用关键字 BINARY 使查询区分大小写。

这个MySQL 面试问题可能很棘手,尤其是在被要求明确区分大小写时。

20. 如何在 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 在常规事务中标记一个点。 它指示系统可以回滚的点。

退房:印度的 SQL 开发人员薪水

从世界顶级大学在线学习软件开发课程获得行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。

结论

所以,这些是一些MySQL 面试问题 要了解该主题和其他准备工作,请访问 upGrad 课程和 PG 计划,这些课程可帮助您找到正确的轨道和应用程序以提升您的职业生涯。

如果您想了解 SQL 以及有关全栈开发的更多信息,请查看 IIIT-B 和 upGrad 的全栈软件开发执行 PG 计划,该计划是为在职专业人士创建的,提供 10 多个案例研究和项目,实用的手-研讨会、与行业专家的指导、与行业导师的一对一交流、400 多个小时的学习和顶级公司的工作协助。

为未来的职业做准备

立即申请全栈开发的执行 PG 计划