zoukankan      html  css  js  c++  java
  • 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


     

  • 相关阅读:
    大一上的总结和大一下学期的目标
    [转]使用c# 模拟网站登录
    RegisterStartupScript和RegisterClientScriptBlock的区别
    关于PHP header函数跳转的问题
    asp.net 动态二维数组
    生成xml
    我们应该明确几个问题
    asp+ajax asp中ajax的中文乱码
    asp.net操作XML
    PHP Header用于页面跳转要注意的几个问题总结
  • 原文地址:https://www.cnblogs.com/moy25/p/8459420.html
Copyright © 2011-2022 走看看