码迷,mamicode.com
首页 > 数据库 > 详细

mysql存储过程简介

时间:2018-02-22 19:25:37      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:创建   基本   数据   类型   sql   数据库类型   输出   结果   default   

一、存储过程,可以理解为带有逻辑的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


 

mysql存储过程简介

标签:创建   基本   数据   类型   sql   数据库类型   输出   结果   default   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!