在前面的内容中,我们学习了视图的概念和使用,视图实际上代表了一种自定义的结果集,可以理解为一个虚拟表。它诠释了部分数据的逻辑关系,但并不会操作数据。
如果有一些需求可以通过多个DML SQL组合起来完成,我们就可以使用存储过程。存储过程可以类比其他编程语言中的方法,有输入输出。只不过从业务逻辑转化来的代码,是用SQL自己的一套符号体系。
有时候我们可能需要一些逻辑随着增删改自动执行,这个时候我们就可以用到触发器。那么下面让我们以MySQL为例,来分别学习一下他们。
存储过程的定义格式如下
DELIMITER //
CREATE PROCEDURE procedure_name (parameter1 data_type, parameter2 data_type, ...)
BEGIN
-- SQL statements
END //
DELIMITER ;
其中,
DELIMITER // 改变语句分隔符,以防止触发器中的分号与默认分隔符出现冲突。有时候多条SQL会用到分号,使用delimiter 可以短范围改变分隔符,方便语句编写;
DELIMITER ;