下面列出了最常见的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数据库中只允许使用六个触发器。
- 插入之前
- 插入后
- 更新之前
- 更新后
- 删除之前
- 删除后
11)什么是堆表?
内存中存在的表称为HEAP表。在MySQL中创建堆表时, 你需要将TYPE指定为HEAP。这些表通常称为内存表。它们临时用于高速存储。它们不允许BLOB或TEXT字段。
12)什么是MySQL中的BLOB和TEXT?
BLOB是首字母缩写, 代表大型二进制对象。它用于保存可变数量的数据。
BLOB有四种类型。
- 天龙八部
- BLOB
- 中号
- 龙猫
所有这些之间的差异是它们可以保存的最大长度值。
TEXT是不区分大小写的BLOB。 TEXT值是非二进制字符串(字符字符串)。它们具有一个字符集, 并根据字符集的排序规则存储和比较值。
TEXT有四种类型。
- 细语
- 文本
- 中文字
- 长文本
13)MySQL中的触发器是什么?
触发器是响应某些事件而执行的一组代码。
14)堆表和临时表有什么区别?
堆表:
堆表在内存中找到。它们临时用于高速存储。它们不允许BLOB或TEXT字段。
堆表不支持AUTO_INCREMENT。
索引不应为空。
临时表:
临时表用于保留临时数据。有时, 在某些情况下保存临时数据会很有用。当前客户端会话终止后, 将删除临时表。
主要区别:
堆表在客户端之间共享, 而临时表不共享。
堆表只是另一个存储引擎, 而对于临时表, 你需要特殊的特权(创建临时表)。
15)FLOAT和DOUBLE有什么区别?
FLOAT存储精度最高为8位的浮点数并分配4个字节, 而DOUBLE存储精度最高为18位的浮点数并分配8个字节。
16)与Oracle相比, MySQL有何优势?
- MySQL是一个免费, 快速, 可靠的开源关系数据库, 而Oracle则很昂贵, 尽管它们提供了Oracle免费版来吸引MySQL用户。
- MySQL在笔记本电脑上仅使用不到1 MB的RAM, 而Oracle 9i安装使用128 MB。
- MySQL适用于支持数据库的网站, 而Oracle适用于企业。
- MySQL是可移植的。
17)MySQL有什么缺点?
- 对于大型数据库, MySQL效率不高。
- 它不支持COMMIT和STORED PROCEDURES函数版本低于5.0。
- 事务处理效率不高。
- MySQL的功能高度依赖于其他插件。
- 发展不是社区驱动的。
18)CHAR和VARCHAR有什么区别?
- CHAR和VARCHAR在存储和检索方面有所不同。
- CHAR列长度是固定的, 而VARCHAR长度是可变的。
- 最大编号CHAR数据类型最多可容纳255个字符, 而VARCHAR最多可容纳4000个字符。
- CHAR比VARCHAR快50%。
- CHAR使用静态内存分配, 而VARCHAR使用动态内存分配。
19)MySQL_connect和MySQL_pconnect有什么区别?
Mysql_connect:
- 它将打开与数据库的新连接。
- 每次需要打开和关闭数据库连接时, 都取决于请求。
- 每次加载时都会打开页面。
mysql_pconnect:
- 在Mysql_pconnect中, ” p”代表持久连接, 因此它将打开持久连接。
- 数据库连接无法关闭。
- 如果你的站点有更多的流量, 这将更加有用, 因为不需要频繁地和每次加载页面时都打开和关闭连接。
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面试问题
评论前必须登录!
注册