暂无图片
暂无图片
1
暂无图片
暂无图片
1
暂无图片

2022年 30+ MySQL 面试题 (基本、中级、高级)

原创 小小亮 2022-10-26
926

MySQL 是一个开源的关系数据库管理系统 (RDBMS)。它可以在 Web 上运行,也可以在服务器上运行。MySQL 快速、可靠且易于使用。它是开源软件。MySQL 使用标准SQL并在许多平台上编译。它是一个多线程、多用户的 SQL 数据库管理系统。MySQL有独立的客户端,允许用户使用 SQL 直接与 MySQL 数据库交互,但更多时候 MySQL 与其他程序一起使用,以实现需要关系数据库功能的应用程序。

MySQL 的安装量超过 1100 万。

基本 MySQL 面试问题

1.什么是MySQL?

MySQL 是用于 Web 服务器的数据库管理系统。它可以随网站一起增长,因为它具有高度可扩展性。今天的大多数网站都由 MySQL 提供支持。

2. 使用 MySQL 有哪些好处?

  • 灵活性: MySQL 可在所有操作系统上运行
  • 权力: MySQL 注重性能
  • 企业级 SQL 特性: MySQL 有一段时间缺乏高级特性,例如子查询、视图和存储过程。
  • 全文索引和搜索
  • 查询缓存:这有助于大大提高 MySQL 的速度
  • 复制:一个 MySQL 服务器可以复制到另一个服务器上,提供了许多优势
  • 配置和安全

3. “数据库”是什么意思?

数据库是存储在计算机系统中的结构化数据集合,并以一种可以快速搜索的方式进行组织。借助数据库,可以快速检索信息。

4. MySQL中的SQL代表什么?

MySQL 中的 SQL 代表结构化查询语言。这种语言也用于其他数据库,如 Oracle 和 Microsoft SQL Server。可以使用如下命令从数据库发送请求:

SELECT title FROM publications WHERE author = ' J. K. Rowling’;
复制


Note that SQL is not case sensitive. However, it is a good practice to write the SQL keywords in CAPS and other names and variables in a small case.
复制


5. MySQL 数据库包含什么?

MySQL 数据库包含一个或多个表,每个表都包含记录或行。在这些行中是包含数据本身的各种列或字段。

6. 如何与 MySQL 交互?

您可以通过三种主要方式与 MySQL 交互: 

  • 使用命令行
  • 通过网络界面
  • 通过编程语言

7. 什么是 MySQL 数据库查询?

查询是特定的请求或问题。可以查询数据库以获取特定信息并返回记录。

8. MySQL 常用的命令有哪些?


CommandAction
ALTERTo alter a database or table
BACKUPTo back-up a table
\cTo cancel Input
CREATETo create a database
DELETETo delete a row from a table
DESCRIBETo describe a table's columns
DROPTo delete a database or table
EXIT(ctrl+c)To exit
GRANTTo change user privileges
HELP (\h, \?)Display help
INSERTInsert data
LOCKLock table(s)
QUIT(\q)Same as EXIT
RENAMERename a Table
SHOWList details about an object
SOURCEExecute a file
STATUS (\s)Display the current status
TRUNCATEEmpty a table
UNLOCKUnlock table(s)
UPDATEUpdate an existing record
USEUse a database

9. 如何在 MySQL 中创建数据库?

使用以下命令创建一个名为“books”的新数据库:

CREATE DATABASE books;
复制


10. 如何使用 MySQL 创建表?

使用以下命令使用 MySQL 创建表:

CREATE TABLE history (
author VARCHAR(128),
title VARCHAR(128),
type VARCHAR(16),
year CHAR(4)) ENGINE InnoDB;
复制

11. 如何将数据插入 MySQL?

INSERT INTO 语句用于向 MySQL 表添加新记录:

INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)
复制

如果我们想为表的所有列添加值,我们不需要在 SQL 查询中指定列名。但是,值的顺序应与表中列的顺序相同。INSERT INTO 语法如下:

INSERT INTO table_name
VALUES (value1, value2, value3, ...);
复制

12. 如何从数据库中删除一列?

您可以使用 DROP 关键字删除列:

ALTER TABLE classics DROP pages;

13. 如何在 MySQL 中创建索引?

在 MySQL 中,有不同的索引类型,例如常规 INDEX、PRIMARY KEY 或 FULLTEXT 索引。您可以借助索引实现快速搜索。索引通过对磁盘上的数据进行排序来加快性能,以便更快地找到结果,或者告诉 SQL 引擎去哪里查找数据。

示例:向历史表添加索引:

ALTER TABLE history ADD INDEX(author(10));
ALTER TABLE history ADD INDEX(title(10));
ALTER TABLE history ADD INDEX(category(5));
ALTER TABLE history ADD INDEX(year);
DESCRIBE history;
复制

14. 如何从 MySQL 表中删除数据?

在 MySQL 中,DELETE 语句用于从表中删除记录:

DELETE FROM table_name
WHERE column_name = value_name
复制

15. 如何在 MySQL 中查看数据库?

可以使用以下命令查看 MySQL 服务器主机上的所有数据库:

mysql> SHOW DATABASES;  

16. MySQL 中的数值数据类型有哪些?

MySQL 具有整数、定点、浮点和位值的数字数据类型,如下表所示。数字类型可以有符号或无符号,但 BIT 除外。一个特殊的属性可以自动生成连续的整数或浮点列值,这对于需要一系列唯一标识号的应用程序很有用。


Type NameMeaning
TINYINTVery Small Integer
SMALLINTSmall Integer
MEDIUMINTMedium-sized Integer
INTStandard Integer
BIGINTLarge Integer
DECIMALFixed-point number
FLOATSingle-precision floating-point number
DOUBLEDouble-precision floating-point number
BITBit-field

17. MySQL 中的字符串数据类型有哪些?

Type NameMeaning
CHARfixed-length nonbinary(character) string
VARCHARvariable-length nonbinary string
BINARYfixed-length binary string
VARBINARYvariable-length binary string
TINYBLOBVery small BLOB(binary large object)
BLOBSmall BLOB
MEDIUMBLOBMedium-sized BLOB
LONGBLOBLarge BLOB
TINYTEXTA very small nonbinary string
TEXTSmall nonbinary string
MEDIUMTEXTMedium-sized nonbinary string
LONGTEXTLarge nonbinary string
ENUMAn enumeration; each column value is assigned, one enumeration member
SETA set; each column value is assigned zero or more set members
NULLNULL in SQL is the term used to represent a missing value. A NULL value in a table is a value in a field that appears to be blank. This value is different than a zero value or a field that contains spaces.

18. MySQL 中的时间数据类型有哪些?


Type NameMeaning
DATEA date value, in ' CCYY-MM-DD ' Format
TIMEA Time value, in ' hh : mm :ss ' format
DATETIMEDate and time value, in ' CCYY-MM-DD hh : mm :ss ' format
TIMESTAMPA timestamp value, in ' CCYY-MM-DD hh : mm :ss ' format
YEARA year value, in CCYY or YY format

示例:从表中选择订单日期为“2018-11-11”的记录:

SELECT * FROM Orders WHERE OrderDate='2018-11-11'
复制

19. What is BLOB in MySQL?

19. MySQL中的BLOB是什么?

BLOB 是一个首字母缩写词,代表二进制大对象。它用于保存可变数量的数据。
有四种类型的 BLOB:

  • 小斑点
  • 斑点
  • 中块
  • 长块

一个 BLOB 可以保存大量数据。例如 - 文档、图像,甚至视频。如果需要,您可以将完整的小说作为文件存储在 BLOB 中。

20、如何在MySQL中添加用户?

您可以使用 CREATE 命令并指定必要的凭据来添加用户。例如:

CREATE USER ‘testuser’ IDENTIFIED BY ‘sample password’;
复制

 

中级 MySQL 面试问题

21.什么是MySQL“视图”?

在 MySQL 中,视图由一组行组成,如果执行特定查询,则返回这些行。这也称为“虚拟表”。视图可以轻松检索通过别名提供查询的方式。 
视图的优点是:

  • 简单
  • 安全
  • 可维护性

22. 如何在 MySQL 中创建和执行视图?

创建视图是使用 CREATE VIEW 语句完成的。举个例子:

CREATE
   [OR REPLACE]
   [ALGORITHM = {MERGE | TEMPTABLE | UNDEFINED }]
   [DEFINER = { user | CURRENT_USER }]
   [SQL SECURITY { DEFINER | INVOKER }]
   VIEW view_name [(column_list)]
   AS select_statement
   [WITH [CASCADED | LOCAL] CHECK OPTION]
复制

23. 什么是 MySQL 触发器?

触发器是为了响应某些预定义的数据库事件而执行的任务,例如在将新行添加到特定表之后。具体来说,此事件涉及插入、修改或删除表数据,并且该任务可以在任何此类事件之前或之后立即发生。 
触发器有很多用途,包括:

  • 审计跟踪
  • 验证
  • 参照完整性实施

24. MySQL 中可能有多少个 Trigger?

MySQL 数据库中允许使用六个触发器:

  • 插入前
  • 插入后
  • 更新前
  • 更新后
  • 删除前
  • 删除后

25.什么是MySQL服务器?

服务器 mysqld 是 MySQL 安装的中心;它执行数据库和表的所有操作。

26. MySQL 客户端和实用程序有哪些?

有几个 MySQL 程序可用于帮助您与服务器进行通信。对于管理任务,这里列出了一些最重要的任务:

• mysql — 一个交互式程序,使您能够将 SQL 语句发送到服务器并查看结果。您还可以使用 mysql 执行批处理脚本(包含 SQL 语句的文本文件)。

• mysqladmin — 一个管理程序,用于执行诸如关闭服务器、检查其配置或监控其状态(如果它似乎无法正常运行)之类的任务。

• mysqldump — 一种用于备份数据库或将数据库复制到另一台服务器的工具。

• mysqlcheck 和myisamchk —帮助您执行表检查、分析和优化以及在表损坏时进行修复的程序。mysqlcheck 适用于 MyISAM 表,并且在某种程度上适用于其他存储引擎的表。myisamchk 仅用于 MyISAM 表。

27. MySQL 中使用的关系类型有哪些?

MySQL 中的关系分为三类:

  • 一对一:通常,当两个项目具有一对一关系时,您只需将它们作为列包含在同一个表中。
  • 一对多:当一个表中的一行链接到另一个表中的许多行时,就会发生一对多(或多对一)关系。
  • 多对多:在多对多关系中,一个表中的许多行链接到另一个表中的许多行。要创建此关系,请添加第三个表,其中包含来自其他每个表的相同键列

高级 MySQL 面试问题

28. 你能解释一下MySQL的逻辑架构吗?

顶层包含大多数基于网络的客户端/服务器工具或服务器所需的服务,例如连接处理、身份验证、安全性等。
第二层包含 MySQL 的大部分大脑。这包含查询解析、分析、优化、缓存和所有内置函数的代码。

第三层包含存储引擎,负责存储和检索存储在 MySQL 中的数据。

29. MySQL 中的缩放是什么?

在 MySQL 中,扩展容量实际上是处理负载的能力,从几个不同的角度考虑负载是很有用的,例如:

  • 数据量
  • 用户数
  • 用户活动
  • 相关数据集的大小

30. 什么是 SQL 中的 Sharding?

将大表分解为分布在多个服务器上的较小块(称为分片)的过程称为分片。 
Sharding 的优势在于,由于分片数据库一般比原来的要小很多;查询、维护和所有其他任务要快得多。

31. MySQL中的事务存储引擎是什么?

为了能够使用 MySQL 的事务功能,您必须使用 MySQL 的 InnoDB 存储引擎(这是 5.5 版以后的默认设置)。如果您不确定您的代码将在哪个版本的 MySQL 上运行,而不是假设 InnoDB 是默认引擎,您可以在创建表时强制使用它,如下所示。

结论

32. 结论

有几种免费或低成本的数据库管理系统可供选择,例如 MySQL、PostgreSQL 或 SQLite。

当您将 MySQL 与其他数据库系统进行比较时,请考虑对您来说最重要的是什么。性能、特性(例如 SQL 一致性或扩展)、支持、许可条件和价格都是需要考虑的因素。

MySQL 是用于开发各种基于 Web 的软件应用程序的最佳 RDBMS 之一。

MySQL 提供两个不同的版本:开源 MySQL Community Server 和专有 Enterprise Server。
鉴于这些考虑,MySQL 具有许多吸引人的品质:

  • 速度
  • 使用方便
  • 查询语言支持
  • 能力
  • 连接性和安全性
  • 可移植性
  • 可用性和成本
  • 开放分发和源代码

很少的 MySQL 参考资料: 

  • https://www.mysql.com
  • https://learning.oreilly.com/library/view/learning-mysql/0596008643/

原文标题:25+ Commonly Asked MySQL Interview Questions (2022)

原文链接:https://www.interviewbit.com/mysql-interview-questions/



最后修改时间:2022-10-26 11:39:23
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

virvle
暂无图片
2年前
评论
暂无图片 0
👍🏻
2年前
暂无图片 点赞
评论