MySQL 知识量:16 - 40 - 165
在数据库应用中,对于复杂的业务,单个SQL语句很难完成任务,许多操作都需要多条语句才能完成。
例如:要在选课表中添加一个学生的新的选课记录。
选课表中实际记录的是学生的id和课程id。
要添加新记录,首先,要根据学生的姓名查询学生的id,确保该学生信息已经注册过。
其次,根据选择的课程查询课程表中对应的课程id,确保选择的课程是可选的。
最后,在选课表中添加查询到的学生id和课程id。
以上操作涉及多条SQL语句,而且,这些业务处理是简化的,比如,如果学生信息没有注册,即查询不到学生id,就应该先进行学籍注册或返回错误提示。
添加选课记录是经常会发生的事情,如果每次都单独编写每条SQL语句,一定是很麻烦的事。这时,存储过程就可以派上用场了。
存储过程就是为了以后多次使用而创建并保存的一条或多条SQL语句,就像window系统的批处理文件一样。
为什么要使用存储过程呢?理由如下:
可以简化复杂的数据库操作。
通过将复杂的SQL操作封装到一个单元里,重复使用这个单元,可以确保数据操作的一致性。
可以简化对SQL语句的修改。如果要修改某个表名或业务逻辑,只需要修改存储过程中的代码就可以,使用存储过程的人甚至都不需要知道如何修改的,只要正确应用存储过程就可以。
存储过程通常都编译过后再存储,MySQL在需要时可以直接执行,提高了性能。
有些SQL元素和特性只能用于单个请求,利用存储过程就可以灵活的使用它们了,从而创建出更加强大的功能。
除了以上优点,存储过程也存在一些不足,例如:
存储过程比一般的SQL语句要复杂的多,因此,编写存储过程需要更好的数据库技能和丰富的经验。
正因为存储过程的编写需要更好的技术,因此,MySQL安全策略允许管理员限制存储过程的创建。但是,MySQL将创建存储过程与执行存储过程所需的安全和访问权限分开管理,因此,即使不能创建存储过程,也可以方便的执行它。
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6