mysql编程
存储过程
什么是存储过程
:
存储过程就是类似于js中一个没有返回值数据值的“函数”。
只做增删改查等操作,不返回单个数据值。但可以“返回”结果集(select的查询结果)——这里的返回起始就是select语句的正常结果表现。
定义(创建)形式
:
其中, in,out,inout用于修饰一个形参的“数据流向”:
in:只作为外部输入数据,调用环境传入存储过程内部,默认值。
out:只作为输出数据,即存储过程传出到调用环境。
inout:具有双重。
存储过程调用形式
:
call 存储过程名(实参1,实参2,.....);
应用示例
:
创建存储过程:
结果:
调用存储过程:
实际,在php中,其实是这样:
$sql = “call pro1(8, 'dd') ”;
mysql_query( $sql );
删除存储过程
:
drop procedure [if exists] 存储过程名;
存储函数
什么是存储函数
:
存储函数就是类似于js中有返回值的函数!——它必须在完成一定的“计算”后返回单个数据值(一个具体数据或变量数据)。
注意:存储函数中不能有select语句——因为select语句会返回结果集,但存储函数只能返回“单个数据值”。
定义(创建)形式
:
调用存储函数
:
和普通函数的调用形式一样,直接使用名字,并带括号,以及根据需要带实参。
当作普通函数的调用方式,可用于select语句中。比如:
select now() as shijian, func1(5) as col;
select 3, now(), f1();
# f1为自定义的存储函数。
select 3, now(), f2(3, ‘abc’, @v1);
# 带3个实参,其中@v1是一个前面赋值了的变量。
应用示例
:
先得改变语句结束符:
创建存储函数:
结果:
删除存储函数
:
drop function [if exists] 存储函数名;