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;

相关推荐
瞬间&永恒~6 小时前
【MySQL】4-6:在同一个主机上使用 systemd 运行多个 MySQL服务器
服务器·数据库·mysql
AAA@峥7 小时前
CentOS7 源码编译安装 MySQL5.7|SQL 基础操作 + 备份恢复完整实战
运维·数据库·sql·centos
一嘴一个橘子9 小时前
MysqL 哪些情况适合创建索引
mysql
时间的拾荒人9 小时前
MySQL C语言连接 - 从入门到实战
android·c语言·mysql
Database_Cool_10 小时前
云数据库控制台好不好用、能不能可视化操作:阿里云 RDS MySQL 控制台体验详解
数据库·mysql·阿里云
番茄炒鸡蛋加糖11 小时前
MySQL 实战调优& 分表基础
数据库·mysql
万亿少女的梦16811 小时前
基于Spring Boot的游戏交易管理系统设计与实现
java·spring boot·mysql·系统设计·交易管理
Database_Cool_11 小时前
云数据库如何保证高可用、故障了怎么办:阿里云 RDS MySQL 高可用架构详解
数据库·mysql·阿里云
Mem0rin12 小时前
[MySQL] 聚合函数、分组查询、连接查询
android·mysql