初见-存储过程

什么是存储过程:存储过程可以说是一个记录集吧,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时候调用他就行了。


存储过程的好处

1.由于数据库执行动作时,是先编译后执行的。然而存储过程是一个编译过的代码块,所以执行效率要比T-SQL语句高。

2.一个存储过程在程序在网络中交互时可以替代大堆的T-SQL语句,所以也能降低网络的通信量,提高通信速率。

3.通过存储过程能够使没有权限的用户在控制之下间接地存取数据库,从而确保数据的安全。


下面通过一个列子理解一下存储过程。


一、提出需求

  查询得到猫咪或者狗子的数量, 如果传入的是0就猫咪,否者为狗子。(以oracle为例)

二、准备数据库表和存储过程

create table animals(  
     id  number  primary key,  
     name varchar(10),
     type char(2)
); 
 insert into animals(id,name,type) values(1,'summer','猫');  
 insert into animals(id,name,type) values(2,'doubao','狗');  
 insert into animals(id,name,type) values(3,'欧欧','猫'); 
-- 创建存储过程(查询得到猫咪或者狗子的数量, 如果传入的是0就猫咪,否者为狗子)
CREATE OR REPLACE PROCEDURE ges_animals_count(type_id IN number, animals_count OUT number)
 IS
begin
IF type_id=0 THEN
SELECT COUNT(*) into animals_count FROM animals WHERE animals.type='猫';
ELSE
SELECT COUNT(*) INTO animals_count FROM animals WHERE animals.type='狗' ;
end if ;
END ges_animals_count;

--  执行存储过程

begin

  -- Call the procedure
  ges_animals_count(type_id => :type_id,
                    animals_count => :animals_count);
end;


猜你喜欢

转载自blog.csdn.net/lianhao19900202/article/details/81015567