MariaDB Interview Questions

MariaDB 面试题

2025年3月16日 | 阅读 21 分钟

以下是关于 MariaDB 的一些最常被问到的面试题及答案

1) 什么是 MariaDB?

MariaDB 是由 MySQL 开发者创建的一个流行、开源、社区驱动的项目。它是一种关系型数据库管理技术,提供与 MySQL 相同的功能。它是 MySQL 的新替代品。

MariaDB 将数据转化为结构化的广泛应用,涵盖从银行到网站的各种场景。MariaDB 之所以被使用,是因为它快速、可扩展、健壮,并且拥有丰富的存储引擎、插件和其他工具生态系统,使其适用于各种用例。

MariaDB 的最新版本(10.4 版本)还包括了 GIS 和 JSON 功能。

更多信息: 点击这里


2) MariaDB 的主要功能有哪些?

MariaDB 提供与 MySQL 相同的功能,并有一些扩展。它相对较新且更先进。

MariaDB 功能列表

  • MariaDB 可以在不同的操作系统上运行,并支持多种编程语言。
  • MariaDB 在 GPL、LGPL 或 BSD 许可下提供。
  • MariaDB 使用标准且流行的查询语言。
  • MariaDB 提供 Galera 集群技术。
  • MariaDB 支持 PHP,这是最流行的 Web 开发语言。
  • MariaDB 包含广泛的存储引擎选择,包括用于处理其他 RDBMS 数据源的高性能存储引擎。
  • MariaDB 还提供了许多 MySQL 中没有的操作和命令,并消除了/替换了对性能产生负面影响的功能。
  • MariaDB 的速度是其突出功能之一。它的可扩展性非常强,可以处理数以万计的表和数十亿行数据。

更多信息: 点击这里


3) 如何在 MariaDB 中创建数据库?

CREATE DATABASE 命令用于在 MariaDB 中创建数据库,CREATE SCHEMA 是创建数据库的同义词。

语法

如果使用了可选的 OR REPLACE 子句,它将作为以下内容的快捷方式:

IF NOT EXISTS

当使用 IF NOT EXISTS 子句时,如果指定的数据库已存在,MariaDB 将返回一个警告而不是错误。

例如

输出

Query OK, 1 row affected (0.01 sec)

输出

Query OK, 2 rows affected (0.00 sec)

输出

Query OK, 1 row affected, 1 warning (0.01 sec) 

警告

级别代码信息
注意1007无法创建数据库“student”;数据库已存在

SHOW DATABASE:此命令用于查看您已创建的数据库

语法

更多信息: 点击这里


4) 如何在 MariaDB 中使用数据库?

USE DATABASE 命令用于在 MariaDB 中选择和使用数据库。USE db-name' 语句告诉 MariaDB 将 db_name 数据库作为后续语句的默认(当前)数据库。数据库将保持为默认状态,直到会话结束,或者发出另一个 USE 语句。

语法

示例

更多信息: 点击这里


5) 如何在 MariaDB 中删除数据库?

DROP DATABASE 命令用于在 MariaDB 中删除数据库。请非常小心此语句!要使用 DROP DATABASE,您需要拥有数据库的 DROP 权限。DROP SCHEMA 是 DROP DATABASE 的同义词。

注意:当数据库被删除时,用户对该数据库的权限不会自动

语法

IF EXISTS 语句

使用 IF EXISTS 可防止因数据库不存在而产生的错误。当使用 IF EXISTS 语句时,每个不存在的数据库都会生成一条注释。

示例

输出

Query OK, 0 rows affected (0.39 sec) 

输出

ERROR (1008): can't drop database; database doesn't exists [\]w: show warning enabled

输出

Query OK, 0 rows affected, 1 warning (0.00 sec)

注释(代码 1008):无法删除数据库“student”;数据库不存在

更多信息: 点击这里


6) 如何在 MariaDB 的数据库中创建表?

首先,您需要在 MariaDB 中创建一个数据库,然后选择该数据库,最后使用 CREATE TABLE 语句创建表。您必须拥有表的 CREATE 权限或数据库的 CREATE 权限才能创建表。

Create table 语句创建表名,后跟列、索引和约束的列表。默认情况下,表在默认数据库中创建。

语法

例如

输出

Query OK, 0 rows affected (0.312 sec)

您可以使用 SHOW TABLES 命令来验证表是否已创建。

更多信息: 点击这里


7) 如何在 MariaDB 的数据库中删除表?

DROP TABLE 命令用于在 MariaDB 的数据库中删除表。它会永久删除表,无法恢复。您必须拥有每个表的 DROP 权限。所有表数据和表定义都会被删除,关联到表的触发器也会被删除,因此请非常小心此语句!

如果参数列表中命名的任何表不存在,MariaDB 将返回一个错误,指示它未能删除的非现有表,但它也会删除列表中存在的那些表。

语法

示例

Mariadb Drop table 1

您可以验证表是否已删除。

输出

Mariadb Drop table 2

更多信息: 点击这里


8) 如何在 MariaDB 数据库的表中插入记录?

INSERT INTO 语句用于在 MariaDB 数据库的表中插入记录。

语法

或者您也可以将其与 WHERE 条件一起使用

例如

指定列名

一次插入多行

从另一个表选择

更多信息: 点击这里


9) 如何从 MongoDB 数据库的表中检索记录?

SELECT 语句用于从 MongoDB 数据库的表中检索记录。您可以使用不同的关键字选择表中的单个、多个或所有记录。

语法

FROM 子句表示要从中检索行的表。

SELECT 语句可以与 UNION 语句、ORDER BY 子句、LIMIT 子句、WHERE 子句、GROUP BY 子句、HAVING 子句等一起使用。

示例

我们有一个名为“Students”的表,其中包含一些数据。所以检索“Students”中的所有记录。

Mariadb Select data 1

更多信息: 点击这里


10) 如何从表中检索有限数量的记录?

LIMIT 子句与 SELECT 语句一起使用,用于从表中选择有限数量的记录。它方便您根据使用情况检索记录。

语法

示例

按降序检索记录

让我们在“Students”表中使用带有 LIMIT 子句的 SELECT 语句。结果按降序显示,LIMIT 为 4。

Mariadb Select limit 1

更多信息: 点击这里


11) 如何更改或更新 MariaDB 表中已插入的记录?

UPDATE 语句用于更改、更新或修改 MariaDB 表中现有的记录。它可以与 WHERE、ORDER BY 和 LIMIT 子句一起使用。

语法

例如

我们有一个名为“Test”的表,包含以下数据

Mariadb Select limit 1

让我们更改“Hello”标题中的“title”为“Welcome to MariaDB”。

Mariadb Select limit 1

更多信息: 点击这里


12) DELETE 语句在 MariaDB 中有什么作用?

MariaDB DELETE 语句用于删除数据库表中一个或多个记录。如果使用时不带 WHERE 条件,则可用于删除表中的记录以及整个表。

语法

让我们使用一个条件删除数据。

示例

Mariadb Delete data 1

查询已成功执行。您现在可以看到已选择的数据已被删除。

Mariadb Delete data 2

您可以看到表中没有“Mahesh”。

同样,您可以使用多个条件删除数据。

更多信息: 点击这里


13) TRUNCATE 语句有什么作用?它与 DELETE 语句有什么区别?

TRUNCATE TABLE 语句用于永久删除表。它会删除表中的所有记录。

语法

DELETE 和 TRUNCATE 语句之间的区别

  • DELETE 语句用于删除表中的一个或多个列以及整个表。另一方面,TRUNCATE TABLE 语句用于永久删除整个表。
  • TRUNCATE TABLE 语句与不带 WHERE 子句的 DELETE 语句相同。
  • DELETE 语句逐行删除,并为每行已删除的记录在事务日志中进行记录。
  • TRUNCATE TABLE 通过解除分配用于存储表数据的页面来删除数据,并在事务日志中仅记录页面解除分配。因此,它比 delete 语句更快。

示例

让我们截断“Students”表。

输出

 Query OK, 0 rows affected (0.031sec).

TRUNCATE 查询已成功执行。您可以看到“Student”表的记录已被永久删除。

输出

No record found.

更多信息: 点击这里


14) 什么是聚合函数?MariaDB 有多少种聚合函数?

在关系数据库管理系统中,聚合函数是根据特定标准将多行值分组作为输入,并提供单个有意义值的函数,例如列表、集合等。

以下是 MariaDB 中的聚合函数列表

MariaDB COUNT 函数:在 MariaDB 数据库中,COUNT 函数用于返回表达式的计数。

语法

COUNT() 函数只计算 NOT NULL 值。

MariaDB SUM 函数:MariaDB SUM 函数用于返回表达式的总和值。

语法

MariaDB MIN 函数:MariaDB MIN() 函数用于检索表达式的最小值。

语法

MariaDB MAX 函数:MariaDB MAX() 函数用于检索表达式的最大值。

语法

MariaDB AVG 函数:MariaDB AVG() 函数用于检索表达式的平均值。

语法

MariaDB BIT_AND 函数:返回 exp 中所有位的按位 AND。

语法

MariaDB BIT_OR:返回 exp 中所有位的按位 OR。

语法

MariaDB BIT_XOR:返回 exp 中所有位的按位 XOR。

语法


15) MariaDB 中使用了哪些不同的子句?

MariaDB 支持 RDBMS 中使用的所有子句。例如

MariaDB WHERE 子句:在 MariaDB 中,WHERE 子句与 SELECT、INSERT、UPDATE 和 DELETE 语句一起使用,用于选择或更改我们想要更改的特定位置。

它出现在语句中的表名之后。

语法

注意:WHERE 子句是可选子句。它可以与 AND、OR、AND & OR、LIKE 运算符一起使用。

MariaDB LIKE 子句:在 MariaDB 中,LIKE 子句与 SELECT 语句一起使用,用于在操作需要精确匹配时检索数据。它可以与 SELECT、INSERT、UPDATE 和 DELETE 语句一起使用。

它用于模式匹配,并返回 true 或 false。用于比较的模式接受以下通配符字符

“%”通配符字符:匹配任意数量的字符(0 个或多个)。

“_”通配符字符:匹配单个字符。它匹配其集合中的字符。

语法

MariaDB ORDER BY 子句:在 MariaDB 数据库中,ORDER BY 子句用于按升序或降序对结果集中的记录进行排序。

语法

注意:您可以在不使用 ASC/DESC 属性的情况下对结果进行排序。默认情况下,结果将按升序存储。

MariaDB DISTINCT 子句:MariaDB DISTINCT 子句用于在使用 SELECT 语句时从结果中删除重复项。

语法

注意:当您仅在 DISTINCT 子句中使用一个表达式时,查询将返回该表达式的唯一值。当您在 DISTINCT 子句中使用多个表达式时,查询将返回所列多个表达式的唯一组合。

DISTINCT 子句不忽略 NULL 值。因此,当在 SQL 语句中使用 DISTINCT 子句时,您的结果集将包含 NULL 作为唯一值。

MariaDB FROM 子句:MariaDB FROM 子句用于从表中获取数据。它也用于连接表,这将在稍后学习。

语法

等等。


16) WHERE 子句有什么作用?

WHERE 子句用于选择或更改从中获取表中记录的特定位置。它与 SELECT、INSERT、UPDATE 和 DELETE 语句一起使用。

语法

带有单个条件的 WHERE 子句

示例

我们有一个名为“Students”的表,其中包含一些数据。让我们检索“Student”表中 student_id 小于 6 的所有记录。

输出

Mariadb Where clause 1

更多信息: 点击这里


17) MariaDB 中的 LIKE 子句有什么作用?

MariaDB LIKE 子句与 SELECT、INSERT、UPDATE 和 DELETE 语句一起使用,用于在操作需要精确匹配时检索数据。

它用于模式匹配,并返回 true 或 false。用于比较的模式接受以下通配符字符

“%”通配符字符:匹配任意数量的字符(0 个或多个)。

“_”通配符字符:匹配单个字符。它匹配其集合中的字符。

语法

我们有一个表“Employees”,包含以下数据。

Mariadb like clause 1

让我们使用 % 通配符与 LIKE 条件来查找所有以“L”开头名称。

Mariadb like clause 2

更多信息: 点击这里


18) MariaDB 中的 ORDER BY 子句有什么作用?

MariaDB ORDER BY 子句用于按升序或降序对结果集中的记录进行排序。

注意:您可以在不使用 ASC/DESC 属性的情况下对结果进行排序。默认情况下,结果将按升序存储。

语法

不使用 ASC/DESC 属性的 ORDER BY 子句

“Employees”表,包含以下数据

ID名称地址
1Lucky澳大利亚
2MayankGhaziabad
3RahulNoida
4LilyLA

输出

ID名称地址
4LilyLA
3RahulNoida
2MayankGhaziabad
1Lucky澳大利亚

更多信息: 点击这里


19) MariaDB DISTINCT 子句有什么作用?

MariaDB DISTINCT 子句用于在使用 SELECT 语句时从结果中删除重复项。

语法

注意:当您仅在 DISTINCT 子句中使用一个表达式时,查询将返回该表达式的唯一值。当您在 DISTINCT 子句中使用多个表达式时,查询将返回所列多个表达式的唯一组合。

DISTINCT 子句不忽略 NULL 值。因此,当在 SQL 语句中使用 DISTINCT 子句时,您的结果集将包含 NULL 作为唯一值。

单个表达式

我们有一个名为“Students”的表,其中包含重复条目。姓名“Ajeet”重复了三次。

Mariadb Distinct clause 1

让我们使用 DISTINCT 子句删除表中的重复项。

输出

Mariadb Distinct clause 2

您可以看到“Ajeet”在原始“Students”表中重复了三次,但在使用 DISTINCT 子句后,它只返回了一次,并且删除了重复条目。

更多信息: 点击这里


20) 为什么我们使用 FROM 子句与 SELECT 语句一起使用?

FROM 子句与 SELECT 语句一起用于从表中检索数据。它也用于连接表。

语法

示例

让我们检索“Employees”表中的所有员工。

输出

Mariadb From clause 1

我们知道 FROM 子句与 SELECT 子句一起用于连接两个表的数据。

MariaDB Join 1

让我们以 INNER JOIN 为例:一种最常见的连接类型,它返回多个表中连接条件满足的所有行。

我们有两个表“Student”和“Employee”。

MariaDB Join 2 MariaDB Join 3

使用以下语法根据给定参数连接两个表

输出

MariaDB Join 4

更多信息: 点击这里


21) COUNT() 聚合函数有什么作用?

MariaDB COUNT() 聚合函数用于返回表达式的计数。

COUNT() 函数只计算 NOT NULL 值。

COUNT(*) 计算表中的总行数。

如果没有匹配的行,COUNT() 将返回 0。

语法

示例

我们有一个 "Students" 表,包含以下数据

MariaDB Count function 1

从“Students”表中计数“student_id”

MariaDB Count function 2

更多信息: 点击这里


22) MariaDB SUM() 函数有什么作用?

MariaDB SUM 函数用于返回表达式的总和值。

如果表中没有任何行,则 SUM() 返回 NULL。DISTINCT 关键字也与 SUM() 一起使用,以仅对表达式的唯一值进行求和。

语法

示例

表:EMP

emp_idemp_salery
11000
22000
35000
MariaDB interview questions

输出

5000

更多信息: 点击这里


23) MariaDB 中 MIN() 函数的用法是什么?

MariaDB MIN() 函数用于检索表达式的最小值。

MIN() 也可以接受字符串参数,在这种情况下,它返回最小的字符串值。

如果没有匹配的行,MIN() 返回 NULL。

语法

示例

我们有一个名为 "Student" 的表,其中包含以下数据

MariaDB Min function

让我们使用 MIN() 函数检索最低工资。

输出

MariaDB interview questions

让我们再举一个例子

MariaDB interview questions
MariaDB Min function

检查 MIN 字符串

MariaDB interview questions

更多信息: 点击这里


24) MariaDB 中 MAX() 函数的用法是什么?

MariaDB MAX() 函数用于检索表达式的最大值。

MAX() 也可以接受字符串参数,在这种情况下,它返回最大的字符串值。

如果没有匹配的行,MAX() 返回 NULL。

语法

示例

我们有一个“student”表

MariaDB interview questions

列出分数最高的学生姓名

MariaDB interview questions

检查最大的字符串名称

MariaDB interview questions

更多信息: 点击这里


25) MariaDB 数据库中 AVG() 函数的用法是什么?

MariaDB AVG() 函数用于检索表达式的平均值。

如果没有匹配的行,AVG() 返回 NULL。

语法

示例

我们有一个名为“Employee2”的表,包含以下数据

MariaDB Avg function 1

让我们从表中检索员工的平均工资。

输出

MariaDB Avg function 2

注意:我们也可以使用带有公式和 ORDER BY 子句的 Average 函数。

更多信息: 点击这里


26) 什么是 JOIN?MariaDB 中有多少种 JOIN?

JOIN 用于从两个或多个表中检索数据。默认情况下,JOIN 也称为 INNER JOIN。它与 SELECT 语句一起使用。

MariaDB 中主要有两种 JOIN

INNER JOIN (内连接)

MariaDB INNER JOIN 是最常见的 JOIN 类型,它返回多个表中连接条件满足的所有行。

语法

MariaDB Join 1

示例

我们有两个表“Students”和“Employee2”。

学生表

MariaDB Join 2

Employee2 表

MariaDB Join 3

执行以下命令

输出

MariaDB Join 4

OUTER JOIN

OUTER JOIN 又分为两种类型

LEFT JOIN

MariaDB LEFT OUTER JOIN 用于返回 ON 条件中指定的左表的所有行,以及其他表中连接条件满足的那些行。

LEFT OUTER JOIN 也称为 LEFT JOIN。

语法

MariaDB Left outer join 1

示例

输出

MariaDB Left outer join 2

RIGHT JOIN

MariaDB RIGHT OUTER JOIN 用于返回 ON 条件中指定的右表的所有行,以及其他表中连接字段满足条件的那些行。

MariaDB RIGHT OUTER JOIN 也称为 RIGHT JOIN。

语法

MariaDB Right outer join 1

示例

MariaDB Right outer join 2

27) 什么是 MariaDB INNER JOIN?

MariaDB INNER JOIN 是最常见的 JOIN 类型,它返回多个表中连接条件满足的所有行。

语法

示例

我们有两个表 'sites' 和 'pages'

Sites 表

site_idsite_name
100javatpoint.com
200Facebook.com
300Yahoo.com
400Google.com

Pages 表

page_idsite_idpage_title
1100MariaDB
2100MySQL
3200Java 面试题
4300软件测试
5500机票预订

现在执行以下命令

输出

site_idsite_namepage_idpage_title
100javatpoint1MariaDB
100javatpoint2MySQL
200Facebook.com3Java 面试题
300Yahoo.com4软件测试

更多信息: 点击这里


28) MariaDB 中的 LEFT OUTER JOIN 是什么?

MariaDB LEFT OUTER JOIN 用于返回 ON 条件中指定的左表的所有行,以及其他表中连接条件满足的那些行。

LEFT OUTER JOIN 也称为 LEFT JOIN。

语法

示例

我们有两个表 'sites' 和 'pages'

Sites 表

site_idsite_name
100javatpoint.com
200Facebook.com
300Yahoo.com
400Google.com

Pages 表

page_idsite_idpage_title
1100MariaDB
2100MySQL
3200Java 面试题
4300软件测试
5500机票预订

现在执行以下命令

输出

site_idsite_namepage_idpage_title
100javatpoint1MariaDB
100javatpoint2MySQL
200Facebook.com3Java 面试题
300Yahoo.com4软件测试
400Google.comnullnull

由于 LEFT JOIN,Site_name Google.com 也被包含在内。

更多信息: 点击这里


29) MariaDB 中的 RIGHT OUTER JOIN 是什么?

MariaDB RIGHT OUTER JOIN 用于返回 ON 条件中指定的右表的所有行,以及其他表中连接字段满足条件的那些行。

MariaDB RIGHT OUTER JOIN 也称为 RIGHT JOIN。

语法

示例

我们有两个表 'sites' 和 'pages'

Sites 表

site_idsite_name
100javatpoint.com
200Facebook.com
300Yahoo.com
400Google.com

Pages 表

page_idsite_idpage_title
1100MariaDB
2100MySQL
3200Java 面试题
4300软件测试
5500机票预订

现在执行以下命令

输出

site_idsite_namepage_idpage_title
100javatpoint1MariaDB
100javatpoint2MySQL
200Facebook.com3Java 面试题
300Yahoo.com4软件测试
nullnull5机票预订

由于 RIGHT JOIN,page_id 和 page_title 包含值。

更多信息: 点击这里


30) MariaDB 中的函数是什么?如何在 MariaDB 中创建和删除函数?

MariaDB 函数是用于传递参数并返回值的存储程序

我们可以在 MariaDB 中轻松创建和删除函数。

# 创建函数 (MariaDB)

您可以在 MariaDB 中创建自己的函数

语法

示例

在 MariaDB 数据库中创建一个名为 CalcValue 的函数。

DEFINER 子句:这是一个可选子句。如果未指定,则 definer 是创建函数的用户。如果您希望指定不同的 definer,则必须包含 DEFINER 子句,其中 user_name 是函数的 definer。

function_name:指定要分配给 MariaDB 中此函数的名称。

return_datatype:指定函数返回值的 数据类型。

LANGUAGE SQL:它在语法中用于可移植性,但对函数没有影响。

DETERMINISTIC:表示给定一组输入参数,函数将始终返回一个结果。

NOT DETERMINISTIC:表示给定一组输入参数,函数可能会返回不同的结果。结果可能会受到表数据、随机数或服务器变量的影响。

CONTAINS SQL:这是默认设置。这是一个信息性子句,告诉 MariaDB 函数包含 SQL,但数据库不会验证这一点。

No SQL:一个未使用且对函数无影响的信息性子句。

READS SQL DATA:一个信息性子句,告诉 MariaDB 函数将使用 SELECT 语句读取数据,但不会修改任何数据。

MODIFIES SQL DATA:一个信息性子句,告诉 MariaDB 函数将使用 INSERT、UPDATE、DELETE 或其他 DDL 语句修改 SQL 数据。

declaration_section:在函数中声明局部变量的位置。

executable_section:在函数中输入函数代码的位置。

输出

MariaDB Functions 2

MariaDB DROP Function

您可以非常轻松地从数据库中删除您创建的函数。

语法

参数解释

function_name:指定要删除的函数的名称。

示例

我们创建了一个名为“CalcValue”的函数。现在删除该函数。

现在您可以看到函数已被删除,并且不再列表中。

MariaDB Functions 5

31) 什么是数据库中的存储过程?

过程有点像数据库中的函数。当您想重复执行某项任务时,就会创建过程。

MariaDB 过程是用于传递参数的存储程序。它不像函数那样返回值。

您可以像函数一样创建和删除过程。

# 创建过程 (MariaDB)

您可以在 MariaDB 中像创建函数一样创建过程。

语法

参数解释

DEFINER 子句:可选。

procedure_name:要分配给 MariaDB 中此过程的名称。

Parameter:传递给过程的一个或多个参数。创建过程时,可以声明三种类型的参数

IN:过程可以引用该参数。参数的值不能被过程覆盖。

OUT:过程不能引用该参数,但该参数的值可以被过程覆盖。

IN OUT:过程可以引用该参数,并且该参数的值可以被过程覆盖。

LANGUAGE SQL:它在语法中用于可移植性,但对函数没有影响。

DETERMINISTIC:表示给定一组输入参数,函数将始终返回一个结果。

NOT DETERMINISTIC:表示给定一组输入参数,函数可能会返回不同的结果。结果可能会受到表数据、随机数或服务器变量的影响。

CONTAINS SQL:这是默认设置。这是一个信息性子句,告诉 MariaDB 函数包含 SQL,但数据库不会验证这一点。

No SQL:一个未使用且对函数无影响的信息性子句。

READS SQL DATA:一个信息性子句,告诉 MariaDB 函数将使用 SELECT 语句读取数据,但不会修改任何数据。

MODIFIES SQL DATA:一个信息性子句,告诉 MariaDB 函数将使用 INSERT、UPDATE、DELETE 或其他 DDL 语句修改 SQL 数据。

declaration_section:在过程中声明局部变量的位置。

executable_section:在过程中输入过程代码的位置。

示例

在 MariaDB 数据库中创建一个名为“CalcValue”的过程。

过程已成功创建

MariaDB interview questions

您可以按如下方式引用您的新过程

MariaDB Procedure 3

MariaDB DROP Procedure

您可以使用以下命令删除过程

语法

参数解释

procedure_name:指定要删除的过程的名称。

示例

您可以看到该过程已被删除,并且在列表中不再可用。

MariaDB Procedure 5