Mysql存储过程和触发器简介

一、存储过程,可以理解为带有逻辑的sql语句。

     优点:是执行效率非常快,存储过程是在数据库的服务器端执行的。

     缺点:移植性很差,不同数据库的存储过程是不能移植。

二、存储过程

1、基本语法

--创建存储过程开始
--声明存储过程结束符为$
DELIMITER $
CREATE PROCEDURE 存储名(IN i int ,out sname varchar(25)) --参数类型(in,out,inout)  参数名  数据库类型
BEGIN
    -- 可以写sql和逻辑体
    -- if语句写法开始
    -- 列如:
    if 条件表达式 then 
        --可以写sql和逻辑体
    elseif 条件表达式 then 
        --可以写sql和逻辑体
    else 
        --可以写sql和逻辑体
    end if
    --if语句写法结束
    
    --while循环语句开始
    -- 列如:
    -- 声明变量i,result
    DECLARE    i INT DEFAULT 1;
    DECLARE result INT DEFAULT 0;
    WHILE i<=num DO
        --可以写sql和逻辑体
        SET result = result + i;
        SET i = i+1;
    END WHILE;
    --while循环语句结束
    
    --使用INTO获取数据库的数据给输出参数开始
    --列如:
        SELECT NAME INTO sname FROM 表名 WHERE id=i; -- i为输入参数,sname为输出参数
    --使用INTO获取数据库的数据给输出参数结束
END $
--创建存储过程结束
--备注 
参数:
IN:   表示输入参数,可以携带数据带存储过程中
OUT: 表示输出参数,可以从存储过程中返回结果
INOUT: 表示输入输出参数,既可以输入功能,也可以输出功能

2、调用存储过程

CALL  存储过程名(参数...);

3、删除存储过程

DROP PROCEDURE 存储过程名;

 三、触发器

1、创建触发器语法

CREATE  TRIGGER  触发器名   
AFTER|BEFORE
INSERT|DELETE|UPDATE ON 表名
FOR EACH ROW
-- 语句sql
end

2、删除触发器

DROP  TRIGGER  触发器名;

yexiangyang

moyyexy@gmail.com


 

原文地址:https://www.cnblogs.com/moy25/p/8459420.html