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


     

  • 相关阅读:
    SQLyog远程连接Linux服务器错误2003解决
    Linux/UNIX系统编程手册 练习3.8
    概括
    Linux 命令
    句柄类
    带有C风格的 CLib库
    Linux 命令
    C++ 编程思想 第三章 3-2
    一.创建型模式 Prototype 模式
    一.创建型模式 Builder
  • 原文地址:https://www.cnblogs.com/moy25/p/8459420.html
Copyright © 2011-2022 走看看