前言
MySQL面试题以及答案整理【最新版】MySQL高级面试题大全,发现网上很多MySQL面试题都没有答案,所以花了很长时间搜集,本套MySQL面试题大全,汇总了大量经典的MySQL程序员面试题以及答案,包含MySQL语言常见面试题、MySQL工程师高级面试题及一些大厂MySQL开发面试宝典,面试经验技巧等,应届生,实习生,企业工作过的,都可参考学习!
这套MySQL面试题大全,希望对大家有帮助哈~
1、一张表,里面有 ID 自增主键,当 insert 了 17 条记录之后,删除了第 15,16,17 条记录,再把 Mysql 重启,再 insert 一条记录,这条记录的 ID 是 18 还是 15 ?
(1) 如果表的类型是 MyISAM,那么是 18
因为 MyISAM 表会把自增主键的最大 ID 记录到数据文件里,重启 MySQL 自增主键的最大ID 也不会丢失
(2)如果表的类型是 InnoDB,那么是 15
InnoDB 表只是把自增主键的最大 ID 记录到内存中,所以重启数据库或者是对表进OPTIMIZE 操作,都会导致最大 ID 丢失
2、Mysql 的技术特点是什么?
Mysql 数据库软件是一个客户端或服务器系统,其中包括:支持各种客户端程序和库的多线程 SQL 服务器、不同的后端、广泛的应用程序编程接口和管理工具。
3、Heap 表是什么?
HEAP 表存在于内存中,用于临时高速存储。
BLOB 或 TEXT 字段是不允许的
只能使用比较运算符=,<,>,=>,= <
HEAP 表不支持 AUTO_INCREMENT
索引不可为 NULL
4、Mysql 服务器默认端口是什么?
Mysql 服务器的默认端口是 3306。
5、与 Oracle 相比,Mysql 有什么优势?
Mysql 是开源软件,随时可用,无需付费。
Mysql 是便携式的
带有命令提示符的 GUI。
使用 Mysql 查询浏览器支持管理
6、如何区分 FLOAT 和 DOUBLE?
以下是 FLOAT 和 DOUBLE 的区别:
1)浮点数以 8 位精度存储在 FLOAT 中,并且有四个字节。
2)浮点数存储在 DOUBLE 中,精度为 18 位,有八个字节。
7、区分 CHAR_LENGTH 和 LENGTH?
CHAR_LENGTH 是字符数,而 LENGTH 是字节数。Latin 字符的这两个数据是相同的,但是对于 Unicode 和其他编码,它们是不同的。
8、请简洁描述 Mysql 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?
SQL 标准定义的四个隔离级别为:
read uncommited :读到未提交数据
read committed:脏读,不可重复读
repeatable read:可重读
serializable :串行事物
9、在 Mysql 中 ENUM 的用法是什么?
ENUM 是一个字符串对象,用于指定一组预定义的值,并在创建表时使用
Create table size(name ENUM('Smail,‘Medium’,‘Large’);
10、如何定义 REGEXP?
REGEXP 是模式匹配,其中匹配模式在搜索值的任何位置。
11、CHAR 和 VARCHAR 的区别?
以下是 CHAR 和 VARCHAR 的区别:
CHAR 和 VARCHAR 类型在存储和