2019最新最新21个个MySQL高频面试题介绍高频面试题介绍
又到了一年的面试季,今年情况特殊,很多人可能都窝在家里,也有一些人准备找工作,但是疫情严重,也没
企业发招聘信息。这个时候,最好的做法就是在家里刷面试题
今天给大家分享 21 个 MySQL 面试题。
1、、Mysql中有哪几种锁?中有哪几种锁?
MyISAM 支持表锁,InnoDB 支持表锁和行锁,默认为行锁。
表级锁:开销小,加锁快,不会出现死锁。锁定粒度大,发生锁冲突的概率最高,并发量 最低。
行级锁:开销大,加锁慢,会出现死锁。锁力度小,发生锁冲突的概率小,并发度最高。
2、、Mysql支持事务吗?支持事务吗?
在缺省模式下,MYSQL 是 autocommit 模式的,所有的数据库更新操作都会即时提交,所 以在缺省情况下,mysql 是不支持
事务的。
但是如果你的 MYSQL 表类型是使用 InnoDB Tables 或 BDB tables 的话,你的 MYSQL 就可以 使用事务处理,使用 SET
AUTOCOMMIT=0 就可以使 MYSQL 允许在非 autocommit 模式,在非autocommit 模式下,你必须使用 COMMIT 来提交你的
更改,或者用 ROLLBACK 来回滚你的 更改。
示例如下:
START TRANSACTION;
SELECT @A:=SUM(salary) FROM table1 WHERE type=1;
UPDATE table2 SET summmary=@A WHERE type=1;
COMMIT;
3、、Mysql查询是否区分大小写?查询是否区分大小写?
不区分。
SELECT VERSION(), CURRENT_DATE;
SeLect version(), current_date;
seleCt vErSiOn(), current_DATE;
这几个例子都是一样的,Mysql 不区分大小写。
4、列设置为、列设置为 AUTO INCREMENT 时,如果在表中达到最大值,会发生什么情况时,如果在表中达到最大值,会发生什么情况?
答:它会停止递增,任何进一步的插入都将产生错误,因为密钥已被使用。
5、一张表,里面有、一张表,里面有 ID 自增主键,当自增主键,当 insert 了了 17 条记录之后,删除了第条记录之后,删除了第 15,16,17 条记录,条记录, 再把再把 Mysql
重启,再重启,再 insert 一条记录,这条记录的一条记录,这条记录的 ID 是是 18 还是还是 15 ?
如果表的类型是 MyISAM,那么是 18。因为 MyISAM 表会把自增主键的最大 ID 记录到数据文件里,重启 MySQL 自增主键
的最大ID 也不会丢失。
如果表的类型是 InnoDB,那么是 15。InnoDB 表只是把自增主键的最大 ID 记录到内存中,所以重启数据库或者是对表进行
OPTIMIZE 操作,都会导致最大 ID 丢失。
6、数据库三范式是什么、数据库三范式是什么?
第一范式(1NF):字段具有原子性,不可再分。(所有关系型数据库系 统都满足第一范式数据库表中的字段都是单一属性的,不可
再分)
第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足 第二范式(2NF)必须先满足第一范式(1NF)。要求数据库表中
的每 个实例或行必须可以被惟一地区分。通常需要为表加上一个列,以存储 各个实例的惟一标识。这个惟一属性列被称为主
关键字或主键。
满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三 范式(3NF)要求一个数据库表中不包含已在其它表中已包含的
非主关 键字信息。>所以第三范式具有如下特征: >>1. 每一列只有一个 值 >>2. 每一行都能区分。>>3. 每一个表都不包含其他