zoukankan      html  css  js  c++  java
  • MySQL储存过程

    储存过程

    本文章原创,转载需注明出处.

     前提:大型数据库

    来源: 为了完成特定功能的SQL语句集

    定义: 储存在数据库中, 用户通过指定储存过程的名字并给出参数(带有参数的)来执行它

    声明: 储存过程是数据库中一个重要的对象,类似于PHP,js 中的函数

    创建储存过程

    create procedure 名称(in|out|inout 名称 类型,...)

    begin

      过程体;

    end

    说明:  过程体可以使用所学的所有SQL

         可以运用变量,运算,流程控制语句,函数

         储存过程没有返回值

    in   传入参数

    out      传出参数

    inout   传入传出参数

    储存过程中的变量

    数据类型 

      int     smallint    tinyint     char    varchar     text     enum()     set()    等

    声明变量

      declare 变量名 类型(长度)

      default 默认值

    变量赋值

      set 变量名 = 值

    变量使用

      变量名

    储存过程中的运算

    算数运算
      + - * / %
    比较运算
      > < >= <= = != <>
    逻辑运算
      and or not
    赋值
      set 变量=值

    储存过程中的条件语句

    if 条件 then
    elseif 条件 then

      过程;
    elseif 条件 then

      过程;
    elseif 条件 then

      过程;
    else

      过程;
    end if;

    储存过程中选择语句

    case 变量名或字段或表达式 

    when 0 then
    语句;
    when 1 then
    语句;
    else
    语句;
    end case;

    储存过程中循环语句 

    while 循环条件 do
    变换步长;
    end while;

    repeat
    变换步长
    until 终止条件
    end repeat;

    储存过程中的函数

    字符串函数:
    CONCAT (string2 [,... ]) //连接字串
    REPLACE (str ,search_str ,replace_str ) //在str中用replace_str替换search_str
    SUBSTRING (str , position [,length ]) //从str的position开始,取length个字符
    数学函数:
    CEILING (number2 ) //向上取整
    FLOOR (number2 ) //向下取整
    RAND([seed]) //随机数
    ROUND (number [,decimals ]) //四舍五入,decimals为小数位数]
    时间日期函数:
    CURRENT_DATE ( ) //当前日期
    CURRENT_TIME ( ) //当前时间
    NOW ( ) //当前时间
    CURRENT_TIMESTAMP ( ) //当前时间

    储存过程的管理

    查看所有存储过程
    select name from mysql.proc where db = 'system' and type= 'PROCEDURE'
    查看某个存储过程
    show create procedure 存储过程名称;
    删除存储过程
    drop procedure 存储过程名称;

  • 相关阅读:
    【前缀和】【分类讨论】hdu5163 Taking Bus
    【DFS】bzoj2079 [Poi2010]Guilds
    【贪心】bzoj3850 ZCC Loves Codefires
    【分类讨论】bzoj3856 Monster
    【莫队算法】【权值分块】bzoj2223 [Coci 2009]PATULJCI
    【枚举】bzoj1709 [Usaco2007 Oct]Super Paintball超级弹珠
    【矩阵哈希】【二分答案】【哈希表】bzoj1567 [JSOI2008]Blue Mary的战役地图
    【矩阵哈希】【哈希表】bzoj2351 [BeiJing2011]Matrix
    【哈希表】CODEVS1230 元素查找
    【二分答案】【哈希表】【字符串哈希】bzoj2946 [Poi2000]公共串
  • 原文地址:https://www.cnblogs.com/chenliuxiao/p/9328170.html
Copyright © 2011-2022 走看看