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;

猜你喜欢

转载自blog.csdn.net/weixin_40597409/article/details/115368739
今日推荐