做后端的同学,总是绕不开MySQL,这里给大家整理一下常见的20个关于MySQL的面试题,希望可以帮到大家!
1.请简洁描述Mysql中InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别?
SQL标准定义的四个隔离级别为:
- read uncommited :读到未提交数据
- read committed:脏读,不可重复读
- repeatable read:可重读
- serializable :串行事物
2、在Mysql中ENUM的用法是什么?
ENUM是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用。
Create table size(name ENUM('Smail,'Medium','Large');
3、如何定义REGEXP?
REGEXP是模式匹配,其中匹配模式在搜索值的任何位置。
4、CHAR和VARCHAR的区别?
以下是CHAR和VARCHAR的区别:
- CHAR和VARCHAR类型在存储和检索方面有所不同
- CHAR列长度固定为创建表时声明的长度,长度值范围是1到255
当CHAR值被存储时,它们被用空格填充到特定长度,检索CHAR值时需删除尾随空格。
5、列的字符串类型可以是什么?
字符串类型是:
- SET
- BLOB
- ENUM
- CHAR
- TEXT
- VARCHAR
6、如何获取当前的Mysql版本?
SELECT VERSION();用于获取当前Mysql的版本。
7、Mysql中使用什么存储引擎?
存储引擎称为表类型,数据使用各种技术存储在文件中。
技术涉及:
- Storage mechanism
- Locking levels
- Indexing
- Capabilities and functions.
8、Mysql驱动程序是什么?
以下是Mysql中可用的驱动程序:
- PHP驱动程序
- JDBC驱动程序
- ODBC驱动程序
- CWRAPPER
- PYTHON驱动程序
- PERL驱动程序
- RUBY驱动程序
- CAP11PHP驱动程序
- Ado.net5.mxj
9、TIMESTAMP在UPDATE CURRENT_TIMESTAMP数据类型上做什么?
创建表时TIMESTAMP列用Zero更新。只要表中的其他字段发生更改,UPDATE CURRENT_TIMESTAMP修饰符就将时间戳字段更新为当前时间。
10、主键和候选键有什么区别?
表格的每一行都由主键唯一标识,一个表只有一个主键。
主键也是候选键。按照惯例,候选键可以被指定为主键,并且可以用于任何外键引用。
11、如何使用Unix shell登录Mysql?
我们可以通过以下命令登录:
# [mysql dir]/bin/mysql -h hostname -u <UserName> -p <password>
12、 myisamchk是用来做什么的?
它用来压缩MyISAM表,这减少了磁盘或内存使用。
13、MYSQL数据库服务器性能分析的方法命令有哪些?
14、如何控制HEAP表的最大尺寸?
Heal表的大小可通过称为max_heap_table_size的Mysql配置变量来控制。
15、MyISAM Static和MyISAM Dynamic有什么区别?
在MyISAM Static上的所有字段有固定宽度。动态MyISAM表将具有像TEXT,BLOB等字段,以适应不同长度的数据类型。点击这里有一套最全阿里面试题总结。
MyISAM Static在受损情况下更容易恢复。
16、federated表是什么?
federated表,允许访问位于其他服务器数据库上的表。
17、如果一个表有一列定义为TIMESTAMP,将发生什么?
每当行被更改时,时间戳字段将获取当前时间戳。
18、列设置为AUTO INCREMENT时,如果在表中达到最大值,会发生什么情况?
它会停止递增,任何进一步的插入都将产生错误,因为密钥已被使用。
19、怎样才能找出最后一次插入时分配了哪个自动增量?
LAST_INSERT_ID将返回由Auto_increment分配的最后一个值,并且不需要指定表名称。
20.、LIKE声明中的%和_是什么意思?
%对应于0个或更多字符,_只是LIKE语句中的一个字符。
数据文件具有“.MYD”(MYData)扩展名