- 是什么?
- 存储过程:SQL语句是先编译执行的,而存储过程经过编译后存储在数据库中,通过存储过程的名字给定参数调用执行,类似与java中封装的方法,避免重复的实现业务逻辑。
- 为什么要用存储过程:
- 优点:
- 增强了SQL语句的灵活性,
- 提高性能和效率:在网络的传输中,我们一般都是将数据取出来,通过网络传输到程序中进行判断,可能只是需要一个最终的判断,或者一个单个的值,大量的数据通过网络传输增加了网络的负载,所以要使用存储过程
- 可以对存储过程进行限制,避免没有授权的用户访问,保证了数据的安全。
- 避免了暴露表结构,和字段。
- 缺点;
- 不利于系统分层设计和维护
- 不利于数据库的迁移,在MySQL中写的存储过程在Oracle中就不能用了。
- 怎么玩?
- 语法规范:
- create procedure 名字 (in a int,in b int): 创建存储过程,后边的是参数
- begin 和 end:开始和结束关键词
- call 名字(参数1,参数2):调用存储过程
- drop:procedure: 删除存储过程
- declare 局部变量名 类型 default 默认值:声明局部变量
- if 条件 then 执行语句 end if:流程控制语句,多个判断可以在
- set :进行复制操作。
- 控制流程书写
- 循环执行
- 面试:
- MySQL常见的函数:
- avg,count,max,min,sum