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;