create procedure 你创建的名称()
begin
。。。。。。。。。
end;
如下:
一.创建语句
create procedure userCount()@1
begin
SELECT COUNT(userId) FROM USER;@2
end;@3
注意:
1. 在@2和@3处记得加分号,要不然在运行时,会报语法错误
2. 在@1处不论有无参数都需要加 (),
二、在数据库中查看你创建的存储过程语句为
select * frommysql.proc where name = '你上边创建的名称'and `type` = 'PROCEDURE'
如下:
select * frommysql.proc where name = 'userCount' and `type` = 'PROCEDURE'
三、查看存储过程代码语句
show createprocedure 你上边创建的名称 如下:
show createprocedure userCount
四、调用创建好的存储过程语句
call userCount ();
五、删除存储语句
DROP PROCEDURE你上边创建的名称
如下:
DROP PROCEDURE userCount
=====================================================================
一、创建IN参数存储
语句如下:
CREATE procedure userName(in cType char)
begin
IF cType='U' THEN
SELECT * FROM USER ;
ELSEIF cType='D' THEN
SELECT * FROM dept ;
ELSE
SELECT * FROM other ;
END IF;
end;
调用语句如下:
1.CALL userName('A')
2.CALL userName('D')
3.CALL userName('E')
二、创建OUT参数存储
CREATE PROCEDUREtestOut(OUT outResult char)
BEGIN
SELECT outResult; //查询结果1
SET outResult='A';//设置值
SELECT outResult; //查询结果2
END;
调用语句如下:
SET @outResult = 'W';
CALLtestOut(@outResult)
调用之后返回两个值结果一和结果而结果1为null 结果2为A
二、创建INOUT参数存储
CREATE PROCEDUREtestInOut(INOUT inOutResult char)
BEGIN
SELECT inOutResult;
SET inOutResult='A';
SELECT inOutResult;
END;
调用语句如下:
SET @inOutResult= 'W';
CALLtestInOut(@inOutResult)
调用之后返回两个值结果一和结果而结果1为W 结果2为A
总结:
IN 输入参数
表示该参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认值
OUT 输出参数
该值可在存储过程内部被改变,并可返回
INOUT 输入输出参数
调用时指定,并且可被改变和返回