SQL高级:存储过程和触发器

在前面的内容中,我们学习了视图的概念和使用,视图实际上代表了一种自定义的结果集,可以理解为一个虚拟表。它诠释了部分数据的逻辑关系,但并不会操作数据。

如果有一些需求可以通过多个DML SQL组合起来完成,我们就可以使用存储过程。存储过程可以类比其他编程语言中的方法,有输入输出。只不过从业务逻辑转化来的代码,是用SQL自己的一套符号体系。

有时候我们可能需要一些逻辑随着增删改自动执行,这个时候我们就可以用到触发器。那么下面让我们以MySQL为例,来分别学习一下他们。

存储过程

定义格式

存储过程的定义格式如下

DELIMITER //

CREATE PROCEDURE procedure_name (parameter1 data_type, parameter2 data_type, ...)
BEGIN
    -- SQL statements
END //

DELIMITER ;

其中,

DELIMITER //  改变语句分隔符,以防止触发器中的分号与默认分隔符出现冲突。有时候多条SQL会用到分号,使用delimiter 可以短范围改变分隔符,方便语句编写;

DELIMITER ;

你可能感兴趣的:(SQL使用从入门到优化,sql,数据库,存储过程,触发器)