vlambda博客
学习文章列表

干货|MySQL常见问题及答案汇总

MySQL是一种开放源代码的关系型数据库管理系统。数据库按照数据结构来组织、存储和管理数据的仓库。每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。


在学习MySQL时会有很多问题,接下来我们一来学习下~


1.Mysql 的技术特点是什么?

Mysql 数据库软件是一个客户端或服务器系统,其中包括:支持各种客户端程序和库的多线程SQL 服务器、不同的后端、广泛的应用程序编程接口和管理工具。


2.一张表,里面有 ID 自增主键,当 insert 了 17 条记录之后,删除了第 15,16,17 条记录,再把 Mysql 重启,再 insert 一条记录,这条记录的 ID 是 18 还是 15 ?

(1)如果表的类型是 MyISAM,那么是 18因为 MyISAM 表会把自增主键的最大 ID 记录到数据文件里,重启 MySQL 自增主键的最大ID 也不会丢失。

(2)如果表的类型是 InnoDB,那么是 15InnoDB 表只是把自增主键的最大 ID 记录到内存中,所以重启数据库或者是对表进行OPTIMIZE 操作,都会导致最大 ID 丢失。


3.Heap 表是什么?

HEAP 表存在于内存中,用于临时高速存储。BLOB 或 TEXT 字段是不允许的,只能使用比较运算符=,<,>,=>,= < 。HEAP 表不支持 AUTO_INCREMENT,索引不可为 NULL 。


4.Mysql 服务器默认端口是什么?

Mysql 服务器的默认端口是 3306。


5.与 Oracle 相比,Mysql 有什么优势?

Mysql 是开源软件,随时可用,无需付费。Mysql 是便携式的带有命令提示符的 GUI。使用 Mysql 查询浏览器支持管理。


6.如何区分 FLOAT 和 DOUBLE?

浮点数以 8 位精度存储在 FLOAT 中,并且有四个字节。浮点数存储在 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 列长度固定为创建表时声明的长度,长度值范围是 1 到 255 。当 CHAR 值被存储时,它们被用空格填充到特定长度,检索 CHAR 值时需删除尾随空格。


12.列的字符串类型可以是什么?

字符串类型是:SET、BLOB、ENUM、CHAR、TEXT、VARCHAR 。


13.如何获取当前的 Mysql 版本?

SELECT VERSION();用于获取当前 Mysql 的版本。

觉得有用的小伙伴可以分享转发

给更多需要的人看到哦~

干货|MySQL常见问题及答案汇总干货|MySQL常见问题及答案汇总

END