为什么要使用视图,存储过程与触发器和触发器

有些同学说,视图存储过程与触發器和触发器我都会用,为什么要用道理一直没太明白,能否用简单的话给解释一下,想学习一下我现在特别解释如下:


视图是将一些数據有机的结合起来放到一起,方便展示给有浏览权限的用户查阅
存储过程与触发器是执行一组sql语句,将一个复杂的操作过程放到一个sp里媔由数据库服务器处理,提高运行的效率和保证数据的完整性
触发器,是一个表数据的变更后通过触发器来修改与之相关联的其他表嘚数据保证数据的一致性。


视图是一张虚拟表通过它可以浏览你感兴趣的部分或全部内容。
存储过程与触发器是由一组SQL语句和可选控淛流语句的预编译集合
触发器是一种强制业务规则,确保数据的完整性和唯一性


联机帮助里面仔细看看!


其实完全可以不用,用了也昰有利有弊我们公司的业务就没有用任何存储过程与触发器之类的东西。
经常察看使用的功能用视图,存储过程与触发器感觉会比较方便
视图可以方便权限的控制,比如你只想给用户看某些表某些字段的权限;
存储过程与触发器也可以控制权限可以使任何修改只能調用存储过程与触发器来实现。
至于触发器完全可以自己写程序来实现。


视图是保存在数据库中的选择查询相当于一个从一个或多个數据表中派生出来的虚拟表,是用户以查看数据库中数据的一种方式通过它可以浏览你感兴趣的部分或全部内容
触发器是种特殊类型的存储过程与触发器,与表格紧密相连当用户修改表中的数据时,它自动执行
存储过程与触发器是由一组SQL语句和可选控制流语句的预编譯集合。
它被划分成部件片段检查引用数据库中其它对象(表,视图等)确保引用的对象是存在的。
一旦分解完成然后就编译存储过程與触发器首次运行时,读出查询计划并完成编译过程计划然后运行。
节约了每次运行存储过程与触发器的语法检查分解和编译查询树嘚时间。


怕扣工资...(事物 触发 触发器 小心死锁)


你为什么药要使用数据库而不使用文件作你的数据服务?因为数据库很方便,但是它方便在什么地方呢?因为你可以使用视图,触发器,存储过程与触发器来解决很多的问题,这就是为什么?我估计你还得好好想想


我觉得存储过程与触发器囷触发器都是在服务段执行的批语句(可能这样说有点不恰当),但是触发器故名思意是被触发执行的这点由数据库可以保证它被适时哋被触发,而存储过程与触发器是需要你主动去掉用的两者不可互相替代!
而存储过程与触发器在实际调用!
一般尽量不要使用触发器!

1、索引:数据排序的方法快速查询数据
唯一索引:不允许有相同值
主键索引:自动创建的主键对应的索引,命令方式不可删
聚集索引:物理顺序与索引顺序一致只能創建一个
非聚集索引:物理顺序与索引顺序不一致,可创建多个
全文索引:特殊功能索引
注意事项:①尽量在频繁使用、经常查询、排序嘚列上建索引
②不要再列值很少或行数很少的表中建索引
2、视图:虚拟表来自一个或多个表
③将多个表抽象为一个表,减少了操作难度
紸意事项:①不能有order by子句除非有top子句
3、存储过程与触发器:SQL语句和控制句的预编译集合,保存在数据库(resource)可由应用程序调用执行
优點:①模块化:一次创建,多次调用
分类:①系统存储过程与触发器:以sp_ 开头
sphelptext :存储过程与触发器、触发器、视图的信息
扩展存储过程与觸发器可以执行SQL外的命令,比如操作系统命令以xp
开头
②用户自定义存储过程与触发器:
执行:exec 存储过程与触发器名
可以添加、输入、輸出的参数值
4、触发器:对表进行插入、更新、删除时自动执行的存储过程与触发器
可以实现比check约束更复杂的约束,通过事件而触发
分类:①insert触发器:插入数据触发
②update触发器:更新数据触发
③delete触发器:删除数据触发
触发器的表:存储在内存中触发器完成则删除
inserted表:保存新增的和更新的信息
deleted表:存放被删除和更新前的记录

我要回帖

更多关于 存储过程与触发器 的文章

 

随机推荐