【机房重构】——视图,触发器,存储过程的使用
2015-05-03 16:16
267 查看
在机房收费系统中,对多个表的查询,要写多个SQL是很麻烦的事情,为了方便我们写代码,同时对代码进行解耦和,我们引用了视图,触发器,存储过程。
从若干个基本表和其他视图构造出来的虚拟表。视图本身并不存储实际的数据,而仅仅存储一个Select语句和所涉及表的metadata。
触发器
特殊的存储过程,此机制是由事务触发而完成的,而不是存储过程的调用。
存储过程
一组完成特定功能的SQL语句集合以及流程控制语句编写的模块,存储过程经过编译后存储在数据库服务端的数据库中,使用时调用即可。
(1)提供了用户访问的接口,用户不必知道底层的表结构是什么样的,当表改变时,只需改变视图的语句,而客户端不许改变,降低了耦合性
(2)加强了安全性,用户只能看到视图提供的那部分数据,其他的看不到
(3)简化了数据库的访问操作
存储过程
(1)提高运行速度,调用存储过程的速度会比执行一条SQL语句要快的多。
(2)只需编译一次即可,而SQL语句使用一次编译一次。
(3)可以反复调用,减轻了程序编写的工作量
(4)增强了SQL的功能和灵活性,能完成复杂的楼及判断和复杂运算
触发器
(1)通过数据库中的相关表来实现级联操作。
(2)自动执行
(3)触发器可以强制用比CHECK约束定义的约束更为复杂的约束。(这一点不太理解)
。。。。。。
Create View <视图名>(<列表序列>)
AS<SELECT 查询语句>
2、存储过程
例如:机房收费系统中的充值操作,当进行充值操作时,要在充值表中添加一条充值记录,并更新卡表里的卡余额。
3、触发器
例如:机房收费系统中的退卡操作,当进行退卡操作时,要在退卡表里更新一条记录,并在卡表里删除对应的卡。
一、是什么?
视图从若干个基本表和其他视图构造出来的虚拟表。视图本身并不存储实际的数据,而仅仅存储一个Select语句和所涉及表的metadata。
触发器
特殊的存储过程,此机制是由事务触发而完成的,而不是存储过程的调用。
存储过程
一组完成特定功能的SQL语句集合以及流程控制语句编写的模块,存储过程经过编译后存储在数据库服务端的数据库中,使用时调用即可。
二、为什么?
视图(1)提供了用户访问的接口,用户不必知道底层的表结构是什么样的,当表改变时,只需改变视图的语句,而客户端不许改变,降低了耦合性
(2)加强了安全性,用户只能看到视图提供的那部分数据,其他的看不到
(3)简化了数据库的访问操作
存储过程
(1)提高运行速度,调用存储过程的速度会比执行一条SQL语句要快的多。
(2)只需编译一次即可,而SQL语句使用一次编译一次。
(3)可以反复调用,减轻了程序编写的工作量
(4)增强了SQL的功能和灵活性,能完成复杂的楼及判断和复杂运算
触发器
(1)通过数据库中的相关表来实现级联操作。
(2)自动执行
(3)触发器可以强制用比CHECK约束定义的约束更为复杂的约束。(这一点不太理解)
。。。。。。
三、怎么用?
1、创建视图后,使用时和使用表一样。Create View <视图名>(<列表序列>)
AS<SELECT 查询语句>
2、存储过程
例如:机房收费系统中的充值操作,当进行充值操作时,要在充值表中添加一条充值记录,并更新卡表里的卡余额。
3、触发器
例如:机房收费系统中的退卡操作,当进行退卡操作时,要在退卡表里更新一条记录,并在卡表里删除对应的卡。
四、总结
上面的两张图是从师傅博客总截的图。视图用过了,触发器和存储过程还没有使用。虽然触发器和存储过程有这么多优点,但我们要慎用,拒绝滥用。相关文章推荐
- 创建数据库、表、主外键、各种约束、存储过程、视图、索引、事务使用、触发器、创建登录账号、数据库用户 Sql语句示例
- mssql:t-sql;创建表;给表添加约束;使用变量;事务,索引,视图;存储过程;触发器trigger
- 查看表被那些存储过程、函数、视图、触发器使用
- 机房重构(4)——触发器的使用
- MySQL事务、存储过程、视图、自定义函数、触发器、事件的简单使用及理解
- vb.net机房收费系统重构——存储过程的使用
- 【机房重构】——存储过程和触发器
- DBGridEh控制单元格显示以及存储过程 触发器和视图以及事务的使用
- 【机房重构】视图的使用
- mssql:t-sql;创建表;给表添加约束;使用变量;事务,索引,视图;存储过程;触发器trigger;播放器http://www.smartgz.com/blog/Article/956.asp
- 视图、存储过程、函数、游标、触发器使用
- vb.net机房收费系统重构——存储过程的使用
- 机房重构(4)——触发器的使用
- 从机房重构中学习数据库——存储过程和触发器
- MySQL笔记---视图,存储过程, 触发器的使用入门
- sql server 2000/2005 判断存储过程、触发器、视图是否存在并删除
- sql server 2000/2005 判断存储过程、触发器、视图是否存在并删除
- SQL使用DOS命令建库。建表,添加约束,标量值函数,存储过程,触发器,游标
- 基于mysql事务、视图、存储过程、触发器的应用分析
- oracle删除当前用户中所有对象(表,视图,触发器,存储过程,函数)