日期:2014-05-17  浏览次数:20937 次

请教各位大侠数据库中视图、触发器、存储过程什么时候用
初来咋到,经验尚浅,一菜鸟接触数据库不久,知道数据库中视图、触发器和存储过程的概念,可就是不知什么地方应该用,不用不可以吗?请指教!
------最佳解决方案--------------------
视图:假如A表有100个字段,只想让别人看到10个,那么可以建一个只有这10个字段的视图
触发器:oracle12C 之前,实现自动递增主键 必须用触发器
存储过程:复杂的不能直接用sql实现的逻辑,都用

当然你也可以不用,这就像飞机、火车、汽车 从北京到天津一定要坐他们么,我走路可不可以?--当然可以,只不过既然人家提供了这些方便的东西,为什么不用呢?
------其他解决方案--------------------
从用户角度来看,一个视图是从一个特定的角度来查看数据库中的数据。从数据库系统内部来看,一个视图是由SELECT语句组成的查询定义的虚拟表。用途很多,比如你需要隐藏某些特定的列,再比如把几个表格联合起来作为一个视图给用户查询。

触发器,有数据库级别的,有表格级别的,在插入,删除,修改前后,如果需要某些特殊操作,可以用触发器实现,比如插入时生成主键。

存储过程就是预先写好的一段plsql代码,存在数据库中给用户调用。

总之,几句话是说不清楚地,表偷懒,网上多查查资料吧
------其他解决方案--------------------
视图:就是一个表或者多个表的一个映射,一般只做查询使用。比如你想要的数据存在两个表里,但你查询时不想每次都写关联,那么你创建一个视图,以后只查询这个视图就可以(查询时视图与查询表语法一样)。

触发器:做数据库操作的时候,还希望相关的数据同步操作就用触发器,比如想要向A表插入数据的时候,同时向B表插入,这样写过触发器每次向A表插入数据之后就会自动向B表插入。

存储过程:这个一般是沉淀数据使用的,当你需要查询的数据不能用一个sql语句查出或者sql语句查询速度特别慢,想要提高效率,就会用到存储过程,先把需要的数据沉淀到结果表里然后直接查询结果表就能提高效率。
------其他解决方案--------------------
大家都说了,我只说下触发器吧
比如你想实现,每当有用户的IP登录地址和上次变化的话,就给客户预警。
那么就写触发器,当这个记录ip的字段变化,你就会如何如何,这就是触发器的一个很重要的应用。
------其他解决方案--------------------
,谢谢各位大侠