Mysql存储过程学习总结

1.简介 : 逻辑处理一般不是一条语句组成,需要多条之间相互配合使用
             这时,存储过程就是为了以后使用而保存的的一条或多条Mysql语句的集合
2.为何 : 1)简单:将处理单元封装到了容易使用的单元中,简化了复杂重复操作
            2)安全:多次自行编写,出现的错误可能性就越多,而统一使用一个错误频率减少
            3)性能:存储过程执行较快
3.使用 : 存储过程的编写权限与调用权限分离
             调用存储过程 : CALL 存储过程名(参数)
4.编写 :  存储过程等级与表,库相当创建删除使用CREATE,DROP PRODUCE
             使用调用相当于表USE 直接加表名-->存储过程CALL + 存储过程名(参数)
              无参:     CREATE PRODUCE 存储过程名()
                            BEGIN
                                //存储过程体
                            END
                无参存储过程结果直接返回而不保存到OUT变量中,调用存储过程直接返回结果表
              有参:
                        1)存储过程相当于方法,有参数,返回值的相关定义
                        2)但存储过程没有之前的返回值定义,都表示在了参数表里
                        3)参数的数据类型类型: IN ,OUT,INOUT
                        4)创建时需定义变量OUT varName CHAR  IN no INT  , 调用时使用实际定义的变量,输入的用实际值,OUT的用定义的变量@变量名以供存储调用完成时返回的结果值
                               eg: CALL  aaa(2000,@total)  
                                     SELECT @total
                        5)将结果赋给OUT变量  SELECT ... INTO total 
                        6)MySQL中实际自定义的变量变量名必须以@开头,无需int @total;,使用时直接给名,利用即可,创建时已经定义过了,使用调用时定义了什么类型调用时就是什么类型
            注意:使用命令行时,使用;分隔每个语句
                    而存储过程体中也有;所以此时需要重新定义语句分隔符 
                    开始前DELIMITER #
                    使用完DELIMITER ; 恢复
  •  存储过程体中需要中间变量,可以在体中定义变量
            DECLARE 变量名 数据类型(DEFAULT 默认值)
  • 存储过程体中含有智能的包含业务逻辑规则就务必使用到逻辑用语 条件,循环等
5.检查
        SHOW CREATE PRODUCE 存储过程名 相当于查看表的创建语句

猜你喜欢

转载自www.cnblogs.com/autism-dong/p/12073313.html