admin 管理员组

文章数量: 887021

存储过程!

存储过程

一:什么是存储过程?

  • 存储过程是一种在数据库中一组特定SQL语句的语句集。
  • 一次编译,永久有效。
  • 将一些复杂,重复的SQL语句封装起来,以后多次执行。
  • 类似于java中的方法,一组预先编译好的sql语句的集合理解成批量处理语句。
  • 减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率

二:MySQL定义存储过程

2.1创建的语法

	create procedure 存储过程名(参数列表)begin   -- 表示着开始存储过程体(一组合法的SQL语句)end  -- 表示着结束
  • 注意点:如果带有参数列表的话
    1.参数列表中将包含三部分:
    参数模式 参数名 参数类型

  • 参数模式:
    in:代表该参数可以作为输入,也就是说该参数需要调用方传入值。
    out:代表该参数可以作为输出,也就是说该参数可以作为返回值。
    inout:代表该参数既可以作为输入,也可以作为输出,也就是该参数既需要传入参数,也可以返回。

  • 如果begin end中只有一条sql语句,可以省略begin end。

  • 存储过程体中的每条SQL语句的结尾要求必须要加分号。

2.2调用的语法

-- 调用语法:call 存储过程名(实参列表);

2.3存储过程实际案例:

 -- 创建: 无参delimiter $create procedure myp1()begininsert into admin(username,`password`) values('join',0001),values('jack',0002),values('zhangsan',0003),values('zhaoliu',0004),values('wangwu',0005);end $--  调用call myp1()$-- 删除drop  procedure myp1;

三:Oracle存储过程

3.1创建的语法

-- 创建存储过程
create procedure add_dog(  -- 方法名p_did number,  -- 参数1 p_dname varchar2, --参数2 后面不能接具体长度 不能写varchar2(20) 类似的p_dage number -- 最后一个参数不需要使用逗号
)
is
begin-- 方法体
end add_dog; -- 代表结束
  • 注意点:
  • 参数后面不能接具体长度 不能写varchar2(20) 类似的.
  • 最后一个参数不需要使用逗号。

3.2 调用存储过程

-- 调用
beginadd_dog(111,'张三',30);
end;

3.3存储过程实际案例

-- 创建存储过程
create procedure add_dog(p_did number,p_dname varchar2,p_dage number
)
is
begin-- 方法体insert into dog values(p_did,p_dname,p_dage);
end add_dog;-- 删除存储过程
drop procedure add_dog;-- 调用
beginadd_dog(111,'张三',30);
end;

Oracle带参存储过程

create procedure up_sel_dog(p_did number,p_dname varchar2,p_dage number,p_result out varchar2  -- out 代表是返回值
)
is 
beginupdate dog set dname = p_dname , dage = p_dage where did = p_did;select dname into p_result from dog where did = p_did;
end up_sel_dog;drop procedure up_sel_dog;--  调用
declarev_result varchar2(20);
begin up_sel_dog(111,'小四',70,v_result);dbms_output.put_line(v_result);
end;

本文标签: 存储过程