mysql 存储过程的见解

来源:互联网 发布:绝地求生枪械数据最新 编辑:程序博客网 时间:2024/06/05 22:10

存储过程:简单来说就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于JAVA语言中的方法;(存储过程跟触发器有点类似,都是一组SQL集,但是存储过程是主动调用的,且功能比触发器更加强大,触发器是某件事触发后自动调用;)

存储过程的特性及参数:有三种参数:in(默认),  out ,  in out,可以声明变量,有if/else, case,while等控制语句,通过编写存储过程,可以实现复杂的逻辑功能;

函数的普遍特性:模块化,封装,代码复用;速度快,只有首次执行需经过编译和优化步骤,后续被调用可以直接执行,省去以上步骤;

存储过程和存储函数的异同:

        1.存储函数和存储过程统称为存储例程(stored routine)。两者的定义语法很相似,但却是不同的内容。存储函数限制比较多,比如不能用临时表,只能用表变量。还有一些函数都不可用等等。而存储过程的限制相对就比较少。
一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强。
2、返回值上的不同
       存储函数将向调用者返回一个且仅返回一个结果值。存储过程将返回一个或多个结果集(函数做不到这一点),或者只是来实现某种效果或动作而无需返回值。
3、调用方式上的不同
      存储函数嵌入在sql中使用的,可以在select中调用,就像内建函数一样,比如cos()、hex() ,存储过程只能通过call语句进行调用
4、参数的不同

      存储函数的参数类型类似于IN参数存储过程的参数类型有三种、IN参数、OUT参数、INOUT参数

基本句法:

1.创建存储过程    create procedure sp_name()

2.调用存储过程   call sp_name()     注意:存储过程名称后面必须加括号,哪怕该存储过程没有参数传递

3.删除存储过程    drop procedure sp_name//

4.注意事项     不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程




原创粉丝点击