从机房重构中学习数据库——存储过程和触发器

      开门见山,我也是在机房中学习使用存储过程,看来大家的博客,慢慢的使用,接触了一段时间还是有点模糊。简单总结一下。                                                              What                                                                                                                                    存储过程:是使用SQL语句和流程控制语句编写的模块,存储过程经编译和优化后存储在数据库服务器端的数据库中,使用时调用。流程控制语句是:控制语句用于控制程序的流程, 以实现程序的各种结构方式。(用提高班的理解就是三类控制结构吧)---流程控制语句百科

 Why
       一、  提高运行速度。在运行存储过程前,数据库服务器对其进行语法和语义分析,并给出优化执行方案。(这里面的名词听过,理解的很浅)相比之下,交互执行的SQL语句是解释执行,所以前者要快。(这里面的道理有谁愿意交流一下,很乐意!)
            二、增强了SQL的功能和灵活性。存储过程可以用流程控制语句编写,有很强的灵活性,能完成复杂的逻辑判断和复杂的运算。
            三、可以降低网络的通信量。存储过程存储在服务器端,执行全部逻辑流程仅需要 向服务器发送一次过程请求即可,避免了交互模式下处理逻辑执行中额外的中间通信开销。
            四、减轻了程序编写的工作量。存储过程可以反复调用,并可供其他前端应用程序共享应用逻辑。
            五、间接实现安全控制功能。
How
        开始用了几个存储过程,里面的小规矩值得注意,不过多多之间就能明白不少。
        和使用存储过程能达到同样效果的还有一个叫SQL/PSM.。简单解释一下:其指定了如何编写持久存储模块,提供流程控制语句来表示过程处理应用逻辑。
来张图吧:
从机房重构中学习数据库——存储过程和触发器_第1张图片
接下来继续说说下面的触发器。
What
        触发器(Trigger)是一个能有系统自动执行对数据库修改的语句。由三部分组成:一、事件:事件是指对数据库的插入,删除,修改等操作。触发器在这些事件发生时开始工作。二、条件:触发器将测试条件是否成立。成立则执行相应的动作,否则不执行。三、动作。如果触发器测试满足预定的条件,那么,就由DBMS执行这些动作。
Why
       触发器是一种特殊的存储过程,触发器不能被直接执行,它们只能为表上的Insert,Update,Delete事件所触发。不能传递或接受参数。能够处理更复杂的关系。开销非常低。
可以引用表中的列来完成数据完整性的约束。
How

从机房重构中学习数据库——存储过程和触发器_第2张图片

总结:
        这些知识只有在事件中才能更好地感受其中的妙处,也更能激发学习的兴趣。通过实践,我发现理解的不够深入是应用的不够多!存储过程和触发器,期待再次学习!

          
       




         

你可能感兴趣的:(从机房重构中学习数据库——存储过程和触发器)