亲爱的订阅用户,这篇文章来介绍MySQL面试问题的答案和解释。正确解决的MySQL问题将帮助你准备技术面试和在线选择测试。
1、MySql表中允许多少触发器?
MySql表允许以下6个触发器:
- BEFORE INSERT - AFTER INSERT - BEFORE UPDATE - AFTER UPDATE - BEFORE DELETE and - AFTER DELETE
2、MySQL的数据类型中浮点数(FLOAT)和双精度数(DOUBLE)有什么不同?
精度和占用存储空间不同,浮点数的精度最高可达8位,有4个字节;双精度存储浮点数的精度最高可达18位,有8个字节。
3、什么叫做堆表(Heap tables)?
-在内存中找到堆表。
-用于临时的高速储存。
他们的一些特点是:
-它们不允许BLOB或文本字段。
-只能使用=、<、>、= >、=<等比较运算符。
-堆表不支持AUTO_INCREMENT功能
-索引不应为空
4、如何控制堆表(Heap tables)的最大大小?
-可以使用名为max_heap_table_size的MySQL config变量来控制堆表的最大大小。
5、与Oracle相比,MySQL有什么优势?
- MySQL是免费的开源软件。
-便携式。
-具有命令提示符的GUI。
- MySQL查询浏览器支持管理。
6、myisamchk做什么工作?
-压缩MyISAM表,减少磁盘或内存使用
7、如何在Unix和MySQL时间戳之间进行转换?
-使用命令UNIX_TIMESTAMP可将MySQL时间戳转换为Unix时间戳。
-可以使用FROM_UNIXTIME命令将Unix时间戳转换为MySQL时间戳。
8、BLOB是什么?
- BLOB表示二进制大对象。
-可以保存可变数量的数据。
根据所能容纳的值的最大长度,有四种BLOB类型:
- TINYBLOB - BLOB - MEDIUMBLOB - LONGBLOB
9、TEXT数据类型是什么?
TEXT是不区分大小写的BLOB。四种文本类型是:
- TINYTEXT - TEXT - MEDIUMTEXT - LONGTEXT
10、BLOB和TEXT之间的区别是什么?
-在BLOB排序和比较中,对BLOB值区分大小写。
-在TEXT文本类型中,不区分大小写进行排序和比较。
11、MyISAM表是如何存储的?
MyISAM表以三种格式存储在磁盘上。
- ' .frm '文件-存储表定义
- ‘.MYD’ (MYData) - 数据文件 - ‘.MYI’ (MYIndex) – 索引文件
12、解释一下ismyam比InnoDB的优势吗?
- MyISAM采用了一种更为保守的磁盘空间管理方法——将每个MyISAM表存储在单独的文件中,如果需要,可以进一步压缩。
——InnoDB表存储在表空间,进一步优化是很困难的。
13、如何在MySQL中连接字符串?
使用- CONCAT (string1, string2, string3)
14、如何在Mysql中获得当前日期?
使用:
SELECT CURRENT_DATE();
15、如何将字符输入为十六进制数字?
-如要以十六进制数字输入字符,可输入单引号和(X)前缀的十六进制数字。
-或者,只是前缀十六进制数字与(Ox)。
16、如何将MySQL时间戳显示给用户?
- MySQL时间戳以可读格式呈现给用户:yyyyy -MM- dd - HH:MM:SS。
17、如何在MySQL中将表导出为XML文件?
MYSQL的查询浏览器有一个名为“Export Result Set”的菜单,允许将表作为XML导出。
18、在MySQL中,i-am-a-dummy标志的使用是什么?
如果WHERE子句不存在,使用i-am-dummy标志将使SQL引擎拒绝执行任何更新或删除。它在使用delete语句时非常有用。使用i-am-dummy标志将不允许执行以下语句:
Delete from employee;
19、MySQL_fetch_array()、MySQL_fetch_object()、MySQL_fetch_row()之间有什么区别?
Mysql_fetch_object作为对象返回数据库的结果,而mysql_fetch_array作为数组返回结果。这将允许通过字段名访问数据。
例如,使用mysql_fetch_object字段可以作为$result访问——>名称,使用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; }
20、mysql_connect和mysql_pconnect之间有什么区别?
首先:
-打开与数据库的新连接。
-可以关闭数据库连接。
-每次载入页面时打开页面。
永久链接:
-打开与数据库的持久连接。
-无法关闭数据库连接。
-页面不需要在每次加载时打开。
mysqlconnect()打开通往数据库的新连接,而mysqlpconnect()打开通往数据库的持久连接。这意味着每次加载该页时,mysql_pconnect()都不会打开数据库。不能使用Mysql_close()来关闭持久连接。虽然可以使用它来关闭mysql_connect()。
21、什么是MySQL数据字典?如何确定数据字典的位置?
MySQL将其数据存储在数据字典的磁盘上。该数据字典下的每个子目录表示这些目录中的MySQL数据库。默认情况下,MySQL = server mysqld管理的信息存储在数据目录中。一个默认的位置数据在windows目录是C:\ mysql数据或C:\Program Files\MySQL\MySQL Server 5.0 \ \数据.
22、在MySQL中,什么是正则表达式?举例说明。
MySql中的正则表达式用于查询字符串中的模式。
*匹配前一个字符串的0个实例。
+匹配前面的字符串实例。
?匹配前一个字符串的0或1个实例。
.匹配一个字符。
[abc]匹配a、b或z
|分隔的字符串
^从一开始进行匹配。
23、可以使用REGEXP将输入字符与数据库匹配。
例子:
下面的语句检索列employee_name包含文本1000(例如salary)的所有行:
Select employee_name From employee Where employee_name REGEXP ‘1000’ Order by employee_name
"."可以用来匹配任何单个字符。“|”可以用来匹配这两个字符串中的任何一个。
如何在MySQL中将表导出为XML文件?
在命令提示符中输入以下语句:
mysql -u test --xml -e 'SELECT * FROM t1' > t1.xml
where ‘–u test‘ is the user name, --xml indicates the type of the file is xml, -e for export
24、在unix中编写一个查询来停止MYSQL。
当发生错误或数据必须保存时,停止MySQL的查询非常有用。它还用于检索根密码,因为它很容易被忘记或放错地方。要停止服务,需要以下命令:
Stop MySQL [root@ tmp]# service mysqld stop Stopping MySQL: [ OK ] [root@ tmp]#
25、如何进行MYSQL数据库备份?
要使用数据库备份,请使用以下语法:
mysqldump --add-drop-table -u [username] -p[password] [database] > [backup_file]
此命令通过知道数据库连接的用户名和密码并删除正在删除或未使用的任何表来进行数据库备份。备份mysql是一种很好的做法,因为它包含用户可以访问的所有数据库信息。在使用该命令时,要注意在-p开关和密码之间不应该有任何空格,如果有的话,就会出现语法错误。
26、编写可以修复MySQL表的命令
可以修复mysql表的命令语法如下:
REPAIR TABLE tablename; REPAIR TABLE tablename QUICK; REPAIR TABLE tablename EXTENDED;
命令将按照它说的那样修复指定的表,但是如果使用QUICK或EXTENDED,那么它的含义就会改变。在快速的情况下,它将只修复索引树,而在扩展的情况下,它将创建一个索引行并修复它。
27、MySQL中有哪些表存储引擎?
默认情况下有许多表存储引擎仍然存在。但是,MyISAM是MySQL中使用的默认数据库引擎。目前有五种表格:
1. MyISAM 2. Heap 3. Merge 4. INNO DB 5. ISAM
28、MYSQL和SQL有什么区别?
- SQL被称为标准查询语言,顾名思义,它是一种用于与数据库交互的语言,如MySQL。
- MySQL是一种存储各种类型数据并保证其安全的数据库。需要一个PHP脚本来存储和检索数据库中的值。
30、为什么要在数据库中使用CHAR而不是VARCHAR ?
CHAR使用起来更加准确和高效。CHAR不需要保留变量长度的计数。当您必须将它用于一个确切长度的文本列时,它会更有效。Char用于固定的数据,而VARCHAR用于像password这样的变量数据。