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

    存储过程是一组为了完成某项特定功能的SQL语句集,其实质就是一段存储在数据库中的代码.它可以由声明式的sql语句和过程式sql语句组成.

    优点:可增强SQL语言的功能和灵活性,良好的封装性,高性能,可减少网络流量,可作为一种安全机制来确保数据库的安全性和数据的完整性.

    mysql-> use mysql_test;

    mysql-> delimiter $$ 

        -> create procedure sp_update_sex(in cid int,in csex char(2))

        -> begin  

        -> update cust set cust_sex=csex where cust_id=cid;

        -> end $$

    mysql-> call sp_update_sex(909,'M')$$   //调用存储过程

    mysql-> select * from cust $$   

    mysql-> drop procedure sp_update_sex$$   //删除存储过程

    mysql-> call sp_update_sex(909,'M')$$     //报错 procedure mysql_test.sp_update_sex does not exist

    存储过程体

    使用declare语句声明局部变量

    declare var_name[...] type[default value]

    declare cid int(10);

    1)只能在存储过程体的begin...end语句块中声明;

    2)必须在存储过程的开头处声明;

    3)作用范围仅限于声明它的begin...end语句块;

    4)不同于用户变量

    局部变量和用户变量的区别

    1)局部变量声明时,在其前面没有@符号,并且它只能被声明它的begin...end语句块中的语句所使用.

    2)用户变量在声明时,会在其名称前面使用@符号,同时已声明的用户变量存在于整个会话之中.

    使用set语句为局部变量赋值

    set var_name=expr[,var_name=expr]...

    set cid=910;

    使用select...into语句把选定列的值直接存储在局部变量中

    select col_name[,...] into var_name[,...] table_expr

    流程控制语句  

    1)条件判断语句

    if...then...else语句

      if 条件 then

        表达式1

      else

        表达式2

      end if;

    case语句

    2)循环语句     \ iterate 用于表示退出当前循环

    while语句

      while 条件

        表达式

      end while

    repeat语句

      repeat

        表达式

      end repeat

    loop语句

      loop

        表达式

      end loop

    使用declare cursor语句创建游标

    declare cursor_name cursor for select_statement

    使用open语句打开游标

    open cursor_name

    使用fetch...into语句读取数据

    fetch cursor_name into var_name[,var_name]...

    使用close语句关闭游标

    close cursor_name

  • 相关阅读:
    c#发送邮件.net1.1和.net2.0中的两个方法
    六步使用ICallbackEventHandler实现无刷新回调
    报表项目总结
    转载:Tomcat Port 8009 与AJP13协议
    JUnit4 使用指南二 (熟练掌握)
    JUnit4 使用指南一 (简单上手)
    HP的项目中曾做一个业务日志系统
    Unitils使用(转载)
    iBatis 学习
    JUnit4 使用指南三 (Runner 特性分析)
  • 原文地址:https://www.cnblogs.com/lsxsx/p/13389919.html
Copyright © 2011-2022 走看看