mysql数据库 | 存储过程

mysql数据库 | 存储过程

1. 什么是存储过程?

如果你接触过其他的编程语言,那么就好理解了,存储过程就像是方法一样。

既然它是方法那么他就有类似的方法名,方法要传递的变量和返回结果,所以存储过程有存储过程名有存储过程参数也有返回值。

2. 存储过程的优势?

  1. 是预先编译好的sql,运行速度很快,传统的零散的sql是需要先编译在运行的

  2. 相当于java中的函数,封装了一段sql代码,这样既方便了代码的复用,也可以通过控制调用存储过程接口的权限来保证数据库的安全。

  3. 方便分工,方便DBA(数据库管理员)专注于sql编写和优化;

  4. 存储过程的能力大大增强了SQL语言的功能和灵活性。

  5. 可保证数据的安全性和完整性。

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

  7. 可以降低网络的通信量。
    使体现企业规则的运算程序放入数据库服务器中,以便 集中控制。

3. 存储过程的缺点?

  1. 调试不是很方便 (没有像开发程序那样容易)
  2. 可能没有创建存储过程的权利
  3. 重新编译问题
  4. 移植性问题(存储过程依赖于具体的数据库)

4. 语法规范

创建

CREATE procedure demo1(in a int, in b int) 
begin    所有被封装的语句一定在beginend之间!
select a+b;
end;

调用

call demo1(1, 2);

删除

DROP PROCEDURE demo1;

声明变量

declare c int default 10;

判断分支

if 条件 then 执行语句 end if
if 条件 then 执行语句1 else 执行语句2 end if

if a+b+c<10 then
select a+b+c
else select a+b
end if;

循环结构

while 条件 do
执行语句;
条件改变语句;
end while;

declare result int default 0;
while c<3 do;
set result=result+c;
set c=c+1;
end while;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值