MySQL面试题

1. 存储过程的作用是什么?

完成特定功能的SQL语句集,类似于java中的方法,处理一些相应的业务流程。

(可以展开说明存储过程的特点,优点,缺点)

经编译后存储在数据库中,通过调用存储过程获得相应的结果。

2. 如何创建一个存储过程?

修改一下SQL语句结束标识符(编写过程中是在可视化工具里进行的,将脚本移交到服务器的时候,防止begin和end之间的分号被误判SQL语句结束了)。

DELIMITER //

CREATE PROCEDURE 存储过程名(参数列表)

BEGIN

SQL语句

END //

DELIMITER ;

3.MySQL中的变量都有哪几种?

三种 系统变量,用户自定义变量,局部变量

(展开说变量分别的特征和使用场景)

系统变量(配置变量,分全局和会话,SELECT @@GLOBLE.autocommit,失效问题)

用户自定义变量(不用声明,用 SET @name)

局部变量(在存储过程、函数、触发器的范围内有效,需要定义声明DECLARE,赋值 :=)

4. 如何定义一个变量?

系统变量不能定义,用户自定义变量用 SET @name,局部变量DECLARE

5.MySQL中使用变量是否需要提前声明?

局部变量需要声明

6.MySQL中的参数分为哪几种?

三种 IN(输入型参数)、 OUT(输出型参数)、 INOUT(输入输出型参数)

参数应用在存储过程或存储函数中

(存储函数指定的所有参数都只能是输入型参数)

7. 用过游标吗?游标的作用是什么?

用来遍历存储过程或存储函数所查询到的结果集

逐行检索,FETCH

游标使用过程(声明,打开,获取,关闭)

8. 了解条件处理程序吗?介绍一下如何使用

定义条件

处理程序

类似于异常,捕获异常

好处是在遇到问题时能够继续运行

错误码分类

使用过程

游标必须在条件处理程序前声明,变量必须在游标或条件处理之前声明

9. 存储函数与存储过程的区别是什么?

存储函数是特殊的存储过程

存储函数的参数必须是输入型参数,并且必须有返回值。

10. 如何查看数据库中创建的存储过程?

SHOW PROCEDUE name;

查看存储过程的定义

SHOW CREATE PROCEDURE name;

11. 什么是触发器?

触发器是一个与表关联的数据库对象,对表进行insert、update、delete操作时,触发并执行定义触发器时指定的SQL语句

触发时间

12.MySQL中触发器分为几种类型?

三种

OLD、NEW关键字的使用

13. 行级触发器与语句级触器的区别是什么?

行触发器:对表中每一行进行操作时,行触发器都会被触发

语句级触发器:无论影响多少行,只触发一次,MySQL中不支持语句级触发器

14. 说一下了解的触发器使用场景都有哪些?

之前:非空校验

之后:记录日志

15. 如果对一表中的数据进行更新,要在日志表中记录该条记录更新前与更新后的值,如何实现?

update触发器

16. 如何查看数据库中创建的触发器?

SHOW TRIGGERS;

SHOW CREATE TRIGGER name;

相关推荐
野生技术架构师2 小时前
一个简单SQL的深度解析
android·数据库·sql
麦聪聊数据2 小时前
数据库安全与运维管控(五):基于AST的SQL拦截与动态审批
运维·数据库·sql
xiaoyaohou112 小时前
025、分布式计算实战:Spark Core与Spark SQL
sql·ajax·spark
路ZP2 小时前
放大镜下拉框
java·数据库·sql
|华|3 小时前
Python操作MySQL数据库
数据库·python·mysql
ZzzZZzzzZZZzzzz…3 小时前
MySQL还原备份方法3----gtid
linux·运维·数据库·mysql·还原备份
chatexcel3 小时前
【实战教程】ChatDB 入门:基于自然语言的无 SQL 数据库操作实践
数据库·sql·oracle
泷羽Sec-静安3 小时前
AICTFer一天速成指南
python·sql·ctf
杼蛘3 小时前
Kali下载与简单使用/MariaDB安装/Docker安装/MySQL镜像安装
mysql·docker·kali·mariadb