简单介绍存储过程和存储函数

一、存储过程

一般存储过程的结构:

create  or replace procedure 过程名(参数 数据类型)as/is

声明变量

begin

    过程;

   异常处理;

end;

例:

创造一个简单整数的加法器

create or replace procedure pro_add (a in out int,b in int) as
begin
   a :=a+b;
   print a;
   exception
       when others then null;
 end;

调用

 call pro_add (10,11);

结果:

21

二、存储函数

一般存储函数的结构

create or replace function 函数名(参数 数据类型) return 数据类型 as/is

变量名 数据类型

begin 

     函数内容;

     异常处理;

end;

例:

创建一个整数加法函数

create or replace function fun_add (a int,b int) return int as
 s int;
begin
   s :=a+b;
  return s;
   exception
       when others then null;
 end;

调用

 select fun_add (10,11);

三、总结

1.存储过程没有返回值,只能通过参数in out来得到执行结果;

2.存储过程没有返回语句,存储函数必须以返回语句结尾return;

3.不能在存储过程的返回语句中带表达式,而存储函数必须带表达式;

4.存储过程不能出现在一个表达式中,而存储函数可以出现在表达式中。 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的 MySQL 存储过程存储函数的实验。 首先,创建一个测试表 test_table,包含两个字段 id 和 name: ```sql CREATE TABLE test_table ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(50) NOT NULL, PRIMARY KEY (id) ); ``` 接着,我们创建一个存储过程,用于向 test_table 中插入数据: ```sql DELIMITER // CREATE PROCEDURE insert_data() BEGIN DECLARE i INT DEFAULT 1; WHILE (i <= 10) DO INSERT INTO test_table (name) VALUES (CONCAT('Name ', i)); SET i = i + 1; END WHILE; END // DELIMITER ; ``` 该存储过程名为 insert_data,它使用了一个 WHILE 循环来向 test_table 中插入 10 条数据,每个数据的 name 字段都是 'Name ' 加上当前循环次数 i。 接下来,我们创建一个存储函数,用于统计 test_table 中数据的数量: ```sql DELIMITER // CREATE FUNCTION count_data() RETURNS INT BEGIN DECLARE count INT; SELECT COUNT(*) INTO count FROM test_table; RETURN count; END // DELIMITER ; ``` 该存储函数名为 count_data,它使用了一个 SELECT COUNT(*) 查询来统计 test_table 中数据的数量,并将结果赋值给 count 变量,最终返回 count。 现在,我们可以分别调用 insert_data 存储过程和 count_data 存储函数来测试它们的效果: ```sql CALL insert_data(); SELECT count_data(); ``` 执行后,我们可以看到 test_table 中已经插入了 10 条数据,同时 count_data 函数返回的结果也是 10。 这就是一个简单的 MySQL 存储过程存储函数的实验。当然,实际使用中还有很多更复杂的情况需要考虑和处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值