史上最全的MySQL面试题和答案大汇总

MySQL面试问题

下面列出了最常见的MySQL面试问题和答案。

1)什么是MySQL?

MySQL是一个多线程, 多用户的SQL数据库管理系统, 安装量超过1100万。这是世界第二流行和广泛使用的开源数据库。有趣的是, 如何为该查询语言指定MySQL名称。 My是由联合创始人Michael Widenius的女儿的名字创造的, 而SQL是Structured Query Language的缩写。对于开发人员而言, 使用MySQL是免费的, 但是企业必须向Oracle支付许可费。

以前, MySQL最初是由一家营利性公司MySQL AB拥有, 然后由Sun Microsystems收购, 然后由Oracle收购Sun Microsystems, 因此Oracle当前拥有MySQL。

MySQL是Oracle支持的关系数据库管理系统(RDBMS), 它基于结构化查询语言。 MySQL支持多种操作系统, 其中最著名的包括Windows, Linux和UNIX。尽管可以使用MySQL开发各种应用程序, 但它仅用于Web应用程序和在线发布。它是称为Lamp的开源企业的基本组成部分。

什么是灯?

Lamp是用于Web开发的平台。 Lamp分别使用Linux, Apache, MySQL和PHP作为操作系统, Web服务器, 数据库和面向对象的脚本语言。因此缩写为LAMP。


2)MySQL用哪种语言编写?

MySQL用C和C ++编写, 其SQL解析器用yacc编写。


3)MySQL的技术规格是什么?

MySQL具有以下技术规格-

  • 结构灵活
  • 高性能
  • 可管理且易于使用
  • 复制和高可用性
  • 安全性和存储管理
  • 车手
  • 图形工具
  • MySQL企业监视器
  • MySQL企业安全性
  • JSON支持
  • 复制和高可用性
  • 可管理性和易用性
  • OLTP和事务
  • 地理空间支持

4)MySQL和SQL有什么区别?

SQL被称为标准查询语言。它用于与MySQL之类的数据库进行交互。 MySQL是一个存储各种类型的数据并保持其安全性的数据库。

需要PHP脚本来存储和检索数据库中的值。

SQL是一种计算机语言, 而MySQL是一种软件或应用程序

SQL用于创建数据库管理系统, 而MySQL用于启用数据处理, 存储, 删除和修改数据


5)数据库和表有什么区别?

数据库和表之间的主要区别是。区别如下:

  • 表是一种表示数据库中数据划分的方式, 而数据库是表和数据的集合。
  • 表用于将相互关联的数据分组并创建数据集。该数据集将在数据库中使用。以任何形式存储在表中的数据都是数据库的一部分, 但事实并非如此。
  • 数据库是有组织的数据的集合, 也是用于访问它们的功能, 而表是用于存储数据的行和列的集合。

6)为什么要使用MySQL数据库服务器?

首先, 开发人员可以免费使用MYSQL服务器, 而企业则可以支付少量费用。

MySQL服务器是开源的。

MySQL社区非常强大且具有支持性, 因此有关MySQL的任何帮助都应尽快解决。

MySQL具有非常稳定的版本, 因为MySQL已经存在很长时间了, 所以以前版本中出现的所有错误都已被不断清除, 并且每次更新后都提供非常稳定的版本。

MySQL数据库服务器非常快速, 可靠并且易于使用。你可以轻松使用和修改软件。可以从互联网上免费下载MySQL软件。


7)MySQL中存在哪些不同的表?

默认情况下, 有许多表仍然存在。但是, MyISAM是MySQL中使用的默认数据库引擎。存在五种类型的表:

  • 我的ISAM
  • 创意数据库
  • ISAM

8)CHAR和VARCHAR有什么区别?

CHAR和VARCHAR之间的差异列表:

  • CHAR是可变长度的, 而VARCHAR是固定长度的。
  • CHAR和VARCHAR类型在存储和检索上有所不同。
  • CHAR列的长度固定为创建表时声明的长度。长度范围是1到255。
  • 当存储CHAR值时, 使用空格将其右填充特定长度。检索CHAR值时, 将删除尾随空格。
  • CHAR使用静态内存分配, 而VARCHAR使用动态内存分配。
  • CHAR比VARCHAR快50%。

9)MySQL中的TRUNCATE和DELETE有什么区别?

TRUNCATE是DDL命令, DELETE是DML命令。

不能在TRUNCATE中使用Where命令, 但是可以将其与DELETE命令一起使用。

TRUNCATE不能与索引视图一起使用, 而DELETE可以与索引视图一起使用。

DELETE命令用于从表中删除数据。它只会从表中删除数据行, 而truncate是非常危险的命令, 应谨慎使用, 因为它会从表中永久删除每一行。


10)MySQL中可能有多少个触发器?

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

  1. 插入之前
  2. 插入后
  3. 更新之前
  4. 更新后
  5. 删除之前
  6. 删除后

11)什么是堆表?

内存中存在的表称为HEAP表。在MySQL中创建堆表时, 你需要将TYPE指定为HEAP。这些表通常称为内存表。它们临时用于高速存储。它们不允许BLOB或TEXT字段。


12)什么是MySQL中的BLOB和TEXT?

BLOB是首字母缩写, 代表大型二进制对象。它用于保存可变数量的数据。

BLOB有四种类型。

  1. 天龙八部
  2. BLOB
  3. 中号
  4. 龙猫

所有这些之间的差异是它们可以保存的最大长度值。

TEXT是不区分大小写的BLOB。 TEXT值是非二进制字符串(字符字符串)。它们具有一个字符集, 并根据字符集的排序规则存储和比较值。

TEXT有四种类型。

  1. 细语
  2. 文本
  3. 中文字
  4. 长文本

13)MySQL中的触发器是什么?

触发器是响应某些事件而执行的一组代码。


14)堆表和临时表有什么区别?

堆表:

堆表在内存中找到。它们临时用于高速存储。它们不允许BLOB或TEXT字段。

堆表不支持AUTO_INCREMENT。

索引不应为空。

临时表:

临时表用于保留临时数据。有时, 在某些情况下保存临时数据会很有用。当前客户端会话终止后, 将删除临时表。

主要区别:

堆表在客户端之间共享, 而临时表不共享。

堆表只是另一个存储引擎, 而对于临时表, 你需要特殊的特权(创建临时表)。


15)FLOAT和DOUBLE有什么区别?

FLOAT存储精度最高为8位的浮点数并分配4个字节, 而DOUBLE存储精度最高为18位的浮点数并分配8个字节。


16)与Oracle相比, MySQL有何优势?

  1. MySQL是一个免费, 快速, 可靠的开源关系数据库, 而Oracle则很昂贵, 尽管它们提供了Oracle免费版来吸引MySQL用户。
  2. MySQL在笔记本电脑上仅使用不到1 MB的RAM, 而Oracle 9i安装使用128 MB。
  3. MySQL适用于支持数据库的网站, 而Oracle适用于企业。
  4. MySQL是可移植的。

17)MySQL有什么缺点?

  1. 对于大型数据库, MySQL效率不高。
  2. 它不支持COMMIT和STORED PROCEDURES函数版本低于5.0。
  3. 事务处理效率不高。
  4. MySQL的功能高度依赖于其他插件。
  5. 发展不是社区驱动的。

18)CHAR和VARCHAR有什么区别?

  1. CHAR和VARCHAR在存储和检索方面有所不同。
  2. CHAR列长度是固定的, 而VARCHAR长度是可变的。
  3. 最大编号CHAR数据类型最多可容纳255个字符, 而VARCHAR最多可容纳4000个字符。
  4. CHAR比VARCHAR快50%。
  5. CHAR使用静态内存分配, 而VARCHAR使用动态内存分配。

19)MySQL_connect和MySQL_pconnect有什么区别?

Mysql_connect:

  1. 它将打开与数据库的新连接。
  2. 每次需要打开和关闭数据库连接时, 都取决于请求。
  3. 每次加载时都会打开页面。

mysql_pconnect:

  1. 在Mysql_pconnect中, ” p”代表持久连接, 因此它将打开持久连接。
  2. 数据库连接无法关闭。
  3. 如果你的站点有更多的流量, 这将更加有用, 因为不需要频繁地和每次加载页面时都打开和关闭连接。

20)” i_am_a_dummy标志”在MySQL中做什么?

如果没有WHERE子句, ” i_am_a_dummy标志”使MySQL引擎可以拒绝执行任何UPDATE或DELETE语句。因此, 如果程序员不使用WHERE子句, 则可以避免程序员误删除整个表。


21)如何在MySQL中获取当前日期?

要获取当前日期, 请使用以下语法:

SELECT CURRENT_DATE();

22)使用MySQL时有哪些安全警报?

安装防病毒软件并配置操作系统的防火墙。

切勿将MySQL服务器用作UNIX根用户。

更改root用户名和密码限制或禁用远程访问。


23)如何通过Mysqladmin更改现有用户的密码?

Mysqladmin -u root -p密码” newpassword”。


24)Unix时间戳和MySQL时间戳有什么区别?

实际上, Unix时间戳和MySQL时间戳都存储为32位整数, 但是MySQL时间戳以YYYY-MM-DD HH:MM:SS格式的可读格式表示。


25)如何在MySQL查询的表格中显示第N个最高薪水?

让我们来一个名为雇员的表。

要找到第N个最高薪水是:

按薪资降级限制n-1, 1从员工订单中选择不同的(薪水)

如果你想找到第三大薪水:

按薪资降级限制2, 1从员工订单中选择不同的(薪水)


26)什么是MySQL默认端口号?

MySQL的默认端口号是3306。


27)什么是REGEXP?

REGEXP是使用正则表达式的模式匹配。正则表达式是为复杂搜索指定模式的有效方法。

基本上, 它是用于描述搜索模式的特殊文本字符串。为了更好地理解它, 你可以在搜索.txt文件以列出文件管理器中的所有文本文件时想到日常生活中的情况。 .txt的等效正则表达式为。* \。txt。


28)你可以为索引创建多少列?

一个标准表最多可以创建16个索引列。


29)NOW()和CURRENT_DATE()有什么区别?

NOW()命令用于显示当前年, 月, 日, 小时, 分钟和秒, 而CURRENT_DATE()显示当前年仅月, 日。


30)显示前20行的查询是什么?

SELECT * FROM table_name LIMIT 0, 20;


31)编写查询以显示当前日期和时间?

如果要显示当前日期和时间, 请使用-

SELECT NOW();

如果只想显示当前日期, 请使用:

SELECT CURRENT_DATE();


32)MySQL中的保存点是什么?

任何事务中的定义点都称为保存点。

SAVEPOINT是MySQL中的一条语句, 用于设置带有标识符名称的命名事务保存点。


33)什么是SQLyog?

SQLyog程序是最流行的admin GUI工具。它是最受欢迎的MySQL管理器和管理工具。它结合了MySQL管理员, phpMyadmin和其他MySQL前端以及MySQL GUI工具的功能。


34)如何在MySQl中备份数据库?

使用phpMyAdmin备份数据很容易。通过单击左侧导航栏中的数据库名称, 选择要备份的数据库。然后单击导出按钮, 并确保突出显示要备份的所有表。然后在导出下指定所需的选项并保存输出。


35)MySQL中有哪些不同的列比较运算符?

=, <>, <=, <, > =, >, <<, >>, <=>, AND, OR或LIKE运算符是MySQL中的比较运算符。这些运算符通常与SELECT语句一起使用。


36)编写查询以计算MySQL中表的行数。

从用户中选择COUNT个user_id;


37)编写查询以检索从20日开始的一百本书。

从20到100本书中选择book_title;


38)编写查询以选择赢得1、3、5或7场比赛的所有球队。

SELECT team_name FROM team WHERE team_won IN(1、3、5、7);


39)MySQL Server的默认端口是什么?

MySQL Server的默认端口是3306。


40)MyISAM表如何存储?

MyISAM表以三种格式存储在磁盘上。

  • ‘.frm’文件:存储表定义
  • ‘.MYD'(MYData):数据文件
  • ‘.MYI'(MYIndex):索引文件

41)ENUM在MySQL中的用法是什么?

ENUM是字符串对象, 通过定义ENUM, 我们允许最终用户提供正确的输入, 以防万一用户提供的输入不属于ENUM定义的数据, 则查询将不会执行, 并且将显示一条错误消息, 指出”错误查询”。例如, 假设我们希望将用户的性别作为输入, 因此我们指定了ENUM(‘male’, ‘female’, ‘other’), 因此, 只要用户尝试输入除这三个字符串以外的任何字符串, 都会导致一个错误。

ENUM用于限制表中可能的值:

例如:

创建表月份(月份ENUM’January’, ‘February’, ‘March’);插入月份值(” 4月”)。


42)MyISAM与InnoDB相比有什么优势?

MyISAM遵循保守的磁盘空间管理方法, 并将每个MyISAM表存储在单独的文件中, 如果需要, 可以进一步压缩。另一方面, InnoDB将表存储在表空间中。其进一步的优化是困难的。


43)MySQL_fetch_array(), MySQL_fetch_object(), MySQL_fetch_row()有什么区别?

Mysql_fetch_object用于作为对象从数据库中检索结果, 而mysql_fetch_array以数组形式返回结果。这将允许通过字段名称访问数据。

例如:

使用mysql_fetch_object字段可以作为$ result-> name访问。

使用mysql_fetch_array字段可以通过$ result-> [name]访问。

使用mysql_fetch_row($ result), 其中$ result是使用mysql_query()函数执行的成功查询返回的结果资源。

例:

$result = mysql_query("SELECT * from students");  
while($row = mysql_fetch_row($result))  
{  
        Some statement;  
}

44)mysql_connect和mysql_pconnect有什么区别?

Mysql_connect()用于打开与数据库的新连接, 而mysql_pconnect()用于打开与数据库的持久连接。它指定每次页面加载时mysql_pconnect()都不打开数据库。


45)mysql_close()有什么用?

Mysql_close()无法用于关闭持久连接。虽然它可以用来关闭由mysql_connect()打开的连接。


46)什么是MySQL数据目录?

MySQL数据目录是MySQL存储其数据的地方。该数据字典下的每个子目录都代表一个MySQL数据库。默认情况下, MySQL =服务器mysqld管理的信息存储在数据目录中。


47)如何确定MySQL数据目录的位置?

Windows中MySQL数据目录的默认位置为C:\ mysql \ data或C:\ Program Files \ MySQL \ MySQL Server 5.0 \ data。


48)MySQL中正则表达式的用法是什么?

在MySQL中, 查询中使用正则表达式来搜索字符串中的模式。

*匹配其前面的字符串的0个实例。

+匹配字符串前面的一个实例。

?匹配其前面的字符串的0或1个实例。

。匹配一个字符。

[abc]匹配a或b或z

|分隔字符串

^从一开始就锁定比赛。

“。”可用于匹配任何单个字符。 ” |”可以用来匹配两个字符串之一

REGEXP可用于将输入字符与数据库进行匹配。

例:

以下语句检索所有列employee_name包含文本1000(示例工资)的行:

Select employee_name  
From employee  
Where employee_name REGEXP '1000'  
Order by employee_name

49)MySQL中” i-am-a-dummy”标志的用法是什么?

在MySQL中, 除非存在WHERE子句, 否则” i-am-a-dummy”标志使MySQL引擎拒绝UPDATE和DELETE命令。


50)哪个命令用于查看MySQL中表的内容?

SELECT命令用于在MySQL中查看表的内容。


51)解释访问控制列表。

ACL是与对象关联的权限列表。 MySQL将访问控制列表缓存在内存中, 每当用户尝试验证或执行命令时, MySQL都会检查对象所需的权限, 如果权限可用, 则执行成功完成。


52)什么是InnoDB?

InnoDB是SQL的存储数据库。除了InnoDB还包括对外键的支持外, 还提供了ACID事务。自2005年以来, InnobaseOY最初由InnobaseOY拥有, 现在它属于Oracle Corporation。


53.什么是ISAM?

它是IBM开发的文件管理系统, 它允许记录按顺序甚至是随机访问。


54.如何在MySQL中运行批处理模式?

要在MySQL中执行批处理模式, 我们使用以下命令:

mysql;

mysql mysql.out;


55.什么是联合表?

联合表是指向位于某些其他服务器上其他数据库上的表的表。


56.主键和候选键有什么区别?

为了识别表的每一行, 使用了主键。对于一个表, 仅存在一个主键。

候选键是一列或一组列, 可用于唯一地标识数据库中的任何记录, 而不必引用任何其他数据。


57. MySQL中的驱动程序是什么?

以下是MySQL中可用的驱动程序:

  • PHP驱动
  • JDBC驱动程序
  • ODBC驱动程序
  • 包装纸
  • PYTHON驱动程序
  • PERL驱动程序
  • RUBY驱动程序
  • CAP11PHP驱动
  • Ado.net5.mxz

58.什么是DDL, DML和DCL?

SQL命令主要可以分为三类, 即DDL, DML和DCL。数据定义语言(DDL)处理所有数据库模式, 并定义数据应如何驻留在数据库中。诸如CreateTABLE和ALTER TABLE之类的命令是DDL的一部分。

数据操作语言(DML)处理数据的操作和操纵, DML中的命令包括插入, 选择等。

数据控制语言(DCL)与授予和权限有关。简而言之, 访问权限是由数据库定义的。


Java OOP面试问题
Java字符串和异常面试问题
JDBC面试问题
JSP面试问题
休眠面试问题
SQL面试题
Android面试题
MySQL面试问题

Java基础面试问题

Java多线程面试问题

Java Collection面试题

Servlet面试问题

春季面试问题

PL / SQL面试问题

Oracle面试问题

SQL Server面试问题

来源:

https://www.srcmini02.com/33606.html

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?