黑马程序员技术交流社区

标题: 数据库问题 [打印本页]

作者: 孤神法法    时间: 2014-3-17 11:52
标题: 数据库问题
本帖最后由 孤神法法 于 2014-3-17 20:09 编辑

数据库中视图,触发器,存储过程主要作用是什么,什么时候使用这些比较方便?
作者: mdb    时间: 2014-3-17 14:31
本帖最后由 mdb 于 2014-3-17 14:33 编辑

视图是将一些数据有机的结合起来放到一起,方便展示给用户查阅,有时你想要的数据被分在了两个表里,那么使用视图对有关联的字段进行连接匹配后就会得到一个将这两个表连起来的一个新表,这个新表就是视图,它的数据实际上还是原来两个表的数据。
存储过程就是执行一组sql语句,将一个复杂的操作过程放到一个存储过程里面,由数据库服务器处理,提高运行的效率和保证数据的完整性,存储过程的SQL语句是留在数据库服务器里,调用时只需要填存储过程名和传入参数即可执行,不需要传很多的SQL语句,减小了网络流量。
触发器,是一个表数据的变更后通过触发器来修改与之相关联的其他表的数据,保证数据的一致性,如果有需求是当有一条数据新增到一个表时,那么也要修改别一个表的某个字段的值,那么就需要使用触发器。
作者: 南天鹤    时间: 2014-3-17 14:32
视图是一张虚拟表,其内容由查询的SQL语句定义。方便展示给有浏览权限的用户查阅。对于一个复杂的查询可以定义一个视图,这样可以简化操作,提高SQL语句的执行效率。通过视图用户只能查看和修改他们所能看到的数据,其它数据库或表既不可见也不可以访问,这样就提高了对数据操作的安全性。

存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数来执行它。使用存储过程可以提高对数据进行操作的效率。

触发器,对一个表进行操作( insert,delete, update)时就会激活执行它的一组SQL语句,它不是由程序调用,也不是手工启动,而是由事件来触发。触发器经常用于加强数据的完整性约束和业务规则等。比如当一用户删除表table,我们可以利用创建触发器判断当前用户是否具有删除权限,如果没有,就会给出错误的提示,拒绝删除。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2