mysql深入浅出的笔记(存储过程一)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql深入浅出的笔记(存储过程一)相关的知识,希望对你有一定的参考价值。

1.存储过程和函数....

   存储过程和函数是事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程和函数可以简化应用开发人员的很多工作,

   减少数据在数据库中和应用服务器之间的传说胡,对于提高数据处理的效率有很多好处.

2.存储过程和函数的区别

  1)函数必须有返回值,而存储过程没有

  2) 存储过程的参数有IN,OUT,INOUT

       而函数的只有IN

   3)存储过程一般是作为一个独立的部分来执行( EXECUTE 语句执行),而函数可以作为查询语句的一个部分来调用(SELECT调用),

     由于函数可以返回一个表对象,因此它可以在查询语句中位于FROM关键字的后面。 SQL语句中不可用存储过程,而可以使用函数。

3.  创建存储过程

     1) CREATE PROCEDURE f1( in p1 int,in p2 int ,out p3 int)
           READS SQL DATA
           BEGIN
               select id
                from inview
               where p1 = inview_id
                 AND   p2 = stroe_id
                 AND m1(id);
            SELECT FOUND_ROWS() INTO p3;
          END

 

 2)
create procedure c1_add (a int ,b int)
 begin 
 declare c int ,
  if    a is null  then  
         set a = 0;
 end if ;

 if b is null then 
      set b = 0;
 end if ;
 set c=a+b;
 select c as sum;
end ;
注:存储过程中不能使用return...return只能使用在函数中...
存储过程的调用...
call cl_add(10,20); //存储过程需要使用call函数来进行调用...
set @a=10; set @b=20; //我们还可以定义两个用户变量...
call cl_add(@a,@b); //将用户变量的值传递过去...

 

4.存储过程和函数的CREATE 语法不支持使用CREATE OR
REPLACE 对存储过程和函数进行修改,如果需要对已有的存储过程或者函数进行修改,需要
执行ALTER 语法。
   ALTER PROCEDURE f1 MODIFIES SQL DATA SQL SECURITY INVOKER;
 
5.删除存储过程或函数
  drop procedure f1;
  drop function    .....;
6.查看存储过程或者函数的定义
   SHOW CREATE {PROCEDURE | FUNCTION} sp_nam

7.变量的应用
   1)变量的定义:DECLARE定义一个局部变量,他的作用域为begin...end;
      DECLARE var_name[,...] type [DEFAULT value]
     例如定义一个int 类型的变量p1:
    DECLARE p1 int;
   2)变量的赋值  set var_name = 常量 ||表达式
     set p1 =1;
 
 

 

以上是关于mysql深入浅出的笔记(存储过程一)的主要内容,如果未能解决你的问题,请参考以下文章

深入学习mysql存储过程

深入学习mysql存储过程

mysql笔记(20)--使用存储过程

MySql 存储过程笔记

MySQL-07-笔记

MySQL学习笔记——存储过程