1. 请简洁描述 MySQL 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?
SQL 标准定义的四个隔离级别为:
read uncommited :读到未提交数据
read committed:脏读,不可重复读
repeatable read:可重读
serializable :串行事物
2. 在 MySQL 中 ENUM 的用法是什么?
ENUM 是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用。
SQL 语法如下:
Create table size(name ENUM('Smail,'Medium','Large');
3. CHAR 和 VARCHAR 的区别?
CHAR 和 VARCHAR 类型在存储和检索方面有所不同。
CHAR 列长度固定为创建表时声明的长度,长度值范围是 1 到 255。
当 CHAR 值被存储时,它们被用空格填充到特定长度,检索 CHAR 值时需删除尾随
空格。
4. 列的字符串类型可以是什么?
字符串类型是:SET
BLOB
ENUM
CHAR
TEXT
VARCHAR
5. MySQL 中使用什么存储引擎?
存储引擎称为表类型,数据使用各种技术存储在文件中。
技术涉及:
Storage mechanism
Locking levels
Indexing
Capabilities and functions.
6. TIMESTAMP 在 UPDATE CURRENT_TIMESTAMP 数据类型上做什么?
创建表时 TIMESTAMP 利用 Zero 更新。只要表中的其他字段发生更改,UPDATECURRENT_TIMESTAMP 修饰符就将时间戳字段更新为当前时间。
7. 主键和候选键有什么区别?
表格的每一行都有主键唯一标识, 一个表只有一个主键。主键也是候选键。按照惯例,候选键可以被指定为主键,并且可以用于任何外键引用。
8. MySQL 数据库服务器性能分析的方法命令有哪些?
Show status 一些值得监控的变量值:
Bytesreceived 和 Bytessent 和服务器之间来往的流量。 Com 服务器正在执行的命令。 Created 在查询执行期限间创建的临时表和文件。 Handler 存储引擎操作。 Select 不同类型的联接执行计划。 Sort_* 几种排序信息。 Show session status like ‘Select’; Show profiles SETprofiling=1; Show profilesG Show profile;
9. LIKE 和 REGEXP 操作有什么区别?
LIKE 和 REGEXP 运算符用于表示 ^ 和%。
SELECT * FROM <tablename> WHERE * REGEXP "^b";
SELECT * FROM <tablename> WHERE * LIKE "%b";
10. BLOB 和 TEXT 有什么区别?
BLOB
BLOB 是一个二进制对象,可以容纳可变数量的数据。有四种类型的 BLOB TINYBLOB
BLOB MEDIUMBLOB 和 LONGBLOB
它们只能在所能容纳价值的最大长度上有所不同。
TEXT
TEXT 是一个不区分大小写的 BLOB。四种 TEXT 类型
TINYTEXT
TEXT
MEDIUMTEXT 和
LONGTEXT
它们对应于四种 BLOB 类型,并具有相同的最大长度和存储要求。BLOB 和 TEXT 类型之间的唯一区别在于对 BLOB 值进行排序和比较时区分大小写,对 TEXT 值不区分大小写。
11. 数据库的三范式?
第一范式:数据库表的每一个字段都是不可分割的。
第二范式:数据库表中的非主属性只依赖于主键。
第三范式:不存在非主属性对关键字的传递函数依赖关系。
12. MySQL 表中允许有多少个 TRIGGERS?
在 MySQL 表中允许有六个触发器,如下:
BEFORE INSERT
AFTER INSERT
BEFORE UPDATE
AFTER UPDATE
BEFORE DELETE and
AFTER DELETE
13. 什么是通用 SQL 函数?
数学函数
Abs(num)求绝对值
floor(num)向下取整
ceil(num)向上取整
字符串函数
insert (s1,index,length,s2) 替换函数
S1 表示被替换的字符串o s2 表示将要替换的字符串
Index 表示被替换的位置, 从 1 开始
Lebgth 表示被替换的长度
upper(str),ucase(str)将字母改为大写
lower(str),lcase(str)将字母改为小写
left(str,length)返回 str 字符串的前 length 个字符
right(str,length)返回 str 字符串的后 length 个字符
substring(str,index,length)返回 str 字符串从 index 位开始长度为
length 个字符(index 从 1 开始)
reverse(str)将 str 字符串倒序输出
日期函数
curdate()、current_date( ) 获取当前日期
curtime()、current_time( ) 获取当前日期
now()获取当前日期和时间
datediff(d1、d2)d1 和 d2 之间的天数差
adddate(date,num)返回 date 日期开始,之后 num 天的日期
subdate(date,num)返回 date 日期开始,之前 num 天的日期聚合函数
Count(字段)根据某个字段统计总记录数(当前数据库保存到多少条数据)
sum(字段)计算某个字段的数值总和
avg(字段)计算某个字段的数值的平均值
Max(字段)、min(字段)求某个字段最大或最小值
14. MySQL 中有哪几种锁?
MyISAM 支持表锁,InnoDB 支持表锁和行锁,默认为行锁。
表级锁:开销小,加锁快,不会出现死锁。锁定粒度大,发生锁冲突的概率最高,并发量最低。
行级锁:开销大,加锁慢,会出现死锁。锁力度小,发生锁冲突的概率小,并发度最高。
【关注】转发了解更多内容