mysql 储存过程

本文详细介绍了数据库中的存储过程和函数,包括它们的定义、创建方法及如何调用。对比了存储过程与函数的主要区别,并提供了创建存储过程、函数及变量的具体示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                                        存储过程
存储过程和函数是事先经过编译并储存在数据库中的一段sql语句的集合,
调用存储过程和函数可以简化应用开发人员的很多工作,减少数据,
减少数据在数据库和应用服务器之间的传输,对于提高数据的处理
的性能的效率有好处。
存储过程与函数的区别在于函数必须由返回值,而存储过程的参数
可以使用in out inout 类型,而函数的参数只能是in类型的


? create procedure;(查看详细的帮助)
delimiter // 定义执行符号
第一步:创建存储过程
delimiter // 定义执行符号
create procedure pro_dept(in deptno(参数) in,out empcount int)
reads sql data (读取查询语句)
begin
 select eid from emp where deptno = deptno;
  select found_rows() into 
end
//(执行)


调用
call prodept(1003,@a);
select @a;


例子:
统计人数:
create proceduce pro_emp(out empcount int)    #只做输出
begin
select count(*) into empcount from pro_emp;
end
//
delimiter ;
CALL pro_emp(@a);
select @a




                                       创建自定义函数
create function constr(str char(50)) returns char(50)
return concat('hi','s','!');
当创建不成功的时候可以查看用户的函数自定义功能是否打开
show variables like '%func%';
如果为off则打开
set global log_bin_trust_function_creators=1;


                                           创建变量
delimiter //
create procedure p()
contains sql
begin 
  declare name varchar(10) default 'jack';
  declare eid int default 121;
  set eid = 222;(变量)
  select username into name from user_tb where id = eid;
  select name;
  end //
delimiter;
call p;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值