![]() MariaDB 面试题2025年3月16日 | 阅读 21 分钟 以下是关于 MariaDB 的一些最常被问到的面试题及答案 1) 什么是 MariaDB?MariaDB 是由 MySQL 开发者创建的一个流行、开源、社区驱动的项目。它是一种关系型数据库管理技术,提供与 MySQL 相同的功能。它是 MySQL 的新替代品。 MariaDB 将数据转化为结构化的广泛应用,涵盖从银行到网站的各种场景。MariaDB 之所以被使用,是因为它快速、可扩展、健壮,并且拥有丰富的存储引擎、插件和其他工具生态系统,使其适用于各种用例。 MariaDB 的最新版本(10.4 版本)还包括了 GIS 和 JSON 功能。 更多信息: 点击这里 2) MariaDB 的主要功能有哪些?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) 警告
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 将返回一个错误,指示它未能删除的非现有表,但它也会删除列表中存在的那些表。 语法 示例 ![]() 您可以验证表是否已删除。 输出 ![]() 更多信息: 点击这里 8) 如何在 MariaDB 数据库的表中插入记录?INSERT INTO 语句用于在 MariaDB 数据库的表中插入记录。 语法 或 或者您也可以将其与 WHERE 条件一起使用 例如 指定列名 一次插入多行 从另一个表选择 更多信息: 点击这里 9) 如何从 MongoDB 数据库的表中检索记录?SELECT 语句用于从 MongoDB 数据库的表中检索记录。您可以使用不同的关键字选择表中的单个、多个或所有记录。 语法 FROM 子句表示要从中检索行的表。 SELECT 语句可以与 UNION 语句、ORDER BY 子句、LIMIT 子句、WHERE 子句、GROUP BY 子句、HAVING 子句等一起使用。 示例 我们有一个名为“Students”的表,其中包含一些数据。所以检索“Students”中的所有记录。 ![]() 更多信息: 点击这里 10) 如何从表中检索有限数量的记录?LIMIT 子句与 SELECT 语句一起使用,用于从表中选择有限数量的记录。它方便您根据使用情况检索记录。 语法 示例 按降序检索记录 让我们在“Students”表中使用带有 LIMIT 子句的 SELECT 语句。结果按降序显示,LIMIT 为 4。 ![]() 更多信息: 点击这里 11) 如何更改或更新 MariaDB 表中已插入的记录?UPDATE 语句用于更改、更新或修改 MariaDB 表中现有的记录。它可以与 WHERE、ORDER BY 和 LIMIT 子句一起使用。 语法 例如 我们有一个名为“Test”的表,包含以下数据 ![]() 让我们更改“Hello”标题中的“title”为“Welcome to MariaDB”。 ![]() 更多信息: 点击这里 12) DELETE 语句在 MariaDB 中有什么作用?MariaDB DELETE 语句用于删除数据库表中一个或多个记录。如果使用时不带 WHERE 条件,则可用于删除表中的记录以及整个表。 语法 让我们使用一个条件删除数据。 示例 ![]() 查询已成功执行。您现在可以看到已选择的数据已被删除。 ![]() 您可以看到表中没有“Mahesh”。 同样,您可以使用多个条件删除数据。 更多信息: 点击这里 13) TRUNCATE 语句有什么作用?它与 DELETE 语句有什么区别?TRUNCATE TABLE 语句用于永久删除表。它会删除表中的所有记录。 语法 DELETE 和 TRUNCATE 语句之间的区别
示例 让我们截断“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 的所有记录。 输出 ![]() 更多信息: 点击这里 17) MariaDB 中的 LIKE 子句有什么作用?MariaDB LIKE 子句与 SELECT、INSERT、UPDATE 和 DELETE 语句一起使用,用于在操作需要精确匹配时检索数据。 它用于模式匹配,并返回 true 或 false。用于比较的模式接受以下通配符字符 “%”通配符字符:匹配任意数量的字符(0 个或多个)。 “_”通配符字符:匹配单个字符。它匹配其集合中的字符。 语法 我们有一个表“Employees”,包含以下数据。 ![]() 让我们使用 % 通配符与 LIKE 条件来查找所有以“L”开头名称。 ![]() 更多信息: 点击这里 18) MariaDB 中的 ORDER BY 子句有什么作用?MariaDB ORDER BY 子句用于按升序或降序对结果集中的记录进行排序。 注意:您可以在不使用 ASC/DESC 属性的情况下对结果进行排序。默认情况下,结果将按升序存储。语法 不使用 ASC/DESC 属性的 ORDER BY 子句 “Employees”表,包含以下数据
输出
更多信息: 点击这里 19) MariaDB DISTINCT 子句有什么作用?MariaDB DISTINCT 子句用于在使用 SELECT 语句时从结果中删除重复项。 语法 注意:当您仅在 DISTINCT 子句中使用一个表达式时,查询将返回该表达式的唯一值。当您在 DISTINCT 子句中使用多个表达式时,查询将返回所列多个表达式的唯一组合。DISTINCT 子句不忽略 NULL 值。因此,当在 SQL 语句中使用 DISTINCT 子句时,您的结果集将包含 NULL 作为唯一值。 单个表达式 我们有一个名为“Students”的表,其中包含重复条目。姓名“Ajeet”重复了三次。 ![]() 让我们使用 DISTINCT 子句删除表中的重复项。 输出 ![]() 您可以看到“Ajeet”在原始“Students”表中重复了三次,但在使用 DISTINCT 子句后,它只返回了一次,并且删除了重复条目。 更多信息: 点击这里 20) 为什么我们使用 FROM 子句与 SELECT 语句一起使用?FROM 子句与 SELECT 语句一起用于从表中检索数据。它也用于连接表。 语法 示例 让我们检索“Employees”表中的所有员工。 输出 ![]() 我们知道 FROM 子句与 SELECT 子句一起用于连接两个表的数据。 ![]() 让我们以 INNER JOIN 为例:一种最常见的连接类型,它返回多个表中连接条件满足的所有行。 我们有两个表“Student”和“Employee”。 ![]() ![]() 使用以下语法根据给定参数连接两个表 输出 ![]() 更多信息: 点击这里 21) COUNT() 聚合函数有什么作用?MariaDB COUNT() 聚合函数用于返回表达式的计数。 COUNT() 函数只计算 NOT NULL 值。 COUNT(*) 计算表中的总行数。 如果没有匹配的行,COUNT() 将返回 0。 语法 示例 我们有一个 "Students" 表,包含以下数据 ![]() 从“Students”表中计数“student_id” ![]() 更多信息: 点击这里 22) MariaDB SUM() 函数有什么作用?MariaDB SUM 函数用于返回表达式的总和值。 如果表中没有任何行,则 SUM() 返回 NULL。DISTINCT 关键字也与 SUM() 一起使用,以仅对表达式的唯一值进行求和。 语法 示例 表:EMP
![]() 输出 5000 更多信息: 点击这里 23) MariaDB 中 MIN() 函数的用法是什么?MariaDB MIN() 函数用于检索表达式的最小值。 MIN() 也可以接受字符串参数,在这种情况下,它返回最小的字符串值。 如果没有匹配的行,MIN() 返回 NULL。 语法 示例 我们有一个名为 "Student" 的表,其中包含以下数据 ![]() 让我们使用 MIN() 函数检索最低工资。 输出 ![]() 让我们再举一个例子 ![]() ![]() 检查 MIN 字符串 ![]() 更多信息: 点击这里 24) MariaDB 中 MAX() 函数的用法是什么?MariaDB MAX() 函数用于检索表达式的最大值。 MAX() 也可以接受字符串参数,在这种情况下,它返回最大的字符串值。 如果没有匹配的行,MAX() 返回 NULL。 语法 示例 我们有一个“student”表 ![]() 列出分数最高的学生姓名 ![]() 检查最大的字符串名称 ![]() 更多信息: 点击这里 25) MariaDB 数据库中 AVG() 函数的用法是什么?MariaDB AVG() 函数用于检索表达式的平均值。 如果没有匹配的行,AVG() 返回 NULL。 语法 或 示例 我们有一个名为“Employee2”的表,包含以下数据 ![]() 让我们从表中检索员工的平均工资。 输出 ![]() 注意:我们也可以使用带有公式和 ORDER BY 子句的 Average 函数。更多信息: 点击这里 26) 什么是 JOIN?MariaDB 中有多少种 JOIN?JOIN 用于从两个或多个表中检索数据。默认情况下,JOIN 也称为 INNER JOIN。它与 SELECT 语句一起使用。 MariaDB 中主要有两种 JOIN INNER JOIN (内连接) MariaDB INNER JOIN 是最常见的 JOIN 类型,它返回多个表中连接条件满足的所有行。 语法 ![]() 示例 我们有两个表“Students”和“Employee2”。 学生表 ![]() Employee2 表 ![]() 执行以下命令 输出 ![]() OUTER JOIN OUTER JOIN 又分为两种类型 LEFT JOIN MariaDB LEFT OUTER JOIN 用于返回 ON 条件中指定的左表的所有行,以及其他表中连接条件满足的那些行。 LEFT OUTER JOIN 也称为 LEFT JOIN。 语法 ![]() 示例 输出 ![]() RIGHT JOIN MariaDB RIGHT OUTER JOIN 用于返回 ON 条件中指定的右表的所有行,以及其他表中连接字段满足条件的那些行。 MariaDB RIGHT OUTER JOIN 也称为 RIGHT JOIN。 语法 ![]() 示例 ![]() 27) 什么是 MariaDB INNER JOIN?MariaDB INNER JOIN 是最常见的 JOIN 类型,它返回多个表中连接条件满足的所有行。 语法 示例我们有两个表 'sites' 和 'pages' Sites 表
Pages 表
现在执行以下命令输出
更多信息: 点击这里 28) MariaDB 中的 LEFT OUTER JOIN 是什么?MariaDB LEFT OUTER JOIN 用于返回 ON 条件中指定的左表的所有行,以及其他表中连接条件满足的那些行。 LEFT OUTER JOIN 也称为 LEFT JOIN。 语法 示例 我们有两个表 'sites' 和 'pages' Sites 表
Pages 表
现在执行以下命令 输出
由于 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 表
Pages 表
现在执行以下命令 输出
由于 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 DROP Function 您可以非常轻松地从数据库中删除您创建的函数。 语法 参数解释 function_name:指定要删除的函数的名称。 示例 我们创建了一个名为“CalcValue”的函数。现在删除该函数。 现在您可以看到函数已被删除,并且不再列表中。 ![]() 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 DROP Procedure 您可以使用以下命令删除过程 语法 参数解释 procedure_name:指定要删除的过程的名称。 示例 您可以看到该过程已被删除,并且在列表中不再可用。 ![]() |
我们请求您订阅我们的新闻通讯以获取最新更新。