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

    http://www.jb51.net/article/30825.htm

    存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它

    好处:即可以大大提高数据库的处理速度,同时也可以提高数据库编程的灵活性。 

    MySQL存储过程的创建 

    (1). 格式 

    MySQL存储过程创建的格式:CREATE PROCEDURE 过程名 ([过程参数[,...]]) 
    [特性 ...] 过程体 

    mysql> DELIMITER // 
    mysql> CREATE PROCEDURE proc1(OUT s int) 
    -> BEGIN 
    -> SELECT COUNT(*) INTO s FROM user; 
    -> END 
    -> // 
    mysql> DELIMITER ; 

     (1)这里需要注意的是DELIMITER //和DELIMITER ;两句,DELIMITER是分割符的意思,因为MySQL默认以";"为分隔符,如果我们没有声明分割符,那么编译器会把存储过程当成SQL语句进行处理,则存储过程的编译过程会报错,所以要事先用DELIMITER关键字申明当前段分隔符,这样MySQL才会将";"当做存储过程中的代码,不会执行这些代码,用完了之后要把分隔符还原。 

    (2)存储过程根据需要可能会有输入、输出、输入输出参数,这里有一个输出参数s,类型是int型,如果有多个参数用","分割开。 

    (3)过程体的开始与结束使用BEGIN与END进行标识

    (2). 声明分割符 

    其实,关于声明分割符,上面的注解已经写得很清楚,不需要多说,只是稍微要注意一点的是:如果是用MySQL的Administrator管理工具时,可以直接创建,不再需要声明。 

    (3). 参数 

    MySQL存储过程的参数用在存储过程的定义,共有三种参数类型,IN,OUT,INOUT,形式如: 

    CREATE PROCEDURE([[IN |OUT |INOUT ] 参数名 数据类形...]) 

    IN 输入参数:表示该参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认值 

    OUT 输出参数:该值可在存储过程内部被改变,并可返回 

    INOUT 输入输出参数:调用时指定,并且可被改变和返回 

    如果仅仅想把数据传给 MySQL 存储过程,那就使用“in” 类型参数;

    如果仅仅从 MySQL 存储过程返回值,那就使用“out” 类型参数;

    如果需要把数据传给 MySQL 存储过程,还要经过一些计算后再传回给我们,此时,要使用“inout” 类型参数。

    调用存储过程

    call 过程名(参数)
  • 相关阅读:
    Minimum Sum
    Prefix and Suffix
    BBuBBBlesort!
    Wanna go back home
    The Chosen One+高精度
    一元三次方程
    文本文件比对
    nginx日志文件切割
    nginx启动脚本
    nginx
  • 原文地址:https://www.cnblogs.com/stellar/p/5284184.html
Copyright © 2011-2022 走看看