一、视图是一种常用的数据库对象,将查询的结果以虚拟表形式存储在数据中,并不在数据中以存储数据集的形式存在。视图的结果和内容是建立在对表的查询基础之上的,和表一样,包括行和列,这些行、列数据都来源于所引用的表,并且是在引用视图过程中动态生成的。
视图中的内容是由查询定义来的,并且视图和查询都是通过SQL语句定义的,他们有着许多相同之处,但又很多不同之处。视图和查询的区别如下:
1. 存储:视图存储为数据库设计的一部分,查询则不是。视图可以禁止所有用户访问数据库中的基表,查询要求用户只能通过视图操作数据。这种方法可以包含用户和应用程序不受某些数据库修改的影响,同样也可以包含数据库表的安全性。
2. 排序:查询的结果都可以拍下,而是他只有包括TOP子句时才能进行排序。
3. 加密:视图可以加密,但查询不能加密。
视图是一个虚拟的数据表,可以是多个表的查询结果,视图的优点包括以下几个方面。
1.简化操作
视图可以是比较复杂的多表关联查询,每一次执行相同的查询时,只需要一条简单的查询视图语句就可以解决复杂查询的问题。视图简化了操作的复杂性,使初学者不必掌握复杂的查询语句,就可以实现多个数据表间的复杂查询工作。对一个视图的访问要比对多个表的访问容易得多,大大简化了用户的操作。
2.建立浅谈和后台缓冲
在数据库开发过程中,可以通过调用视图来实现查询功能。通过对视图的调用,在数据表结果更改时,只要视图的输出列不发生变化,就可以避免对应用程序的修改。大大提高了数据库的开发效率,同时降低了开发成本。
3.合并分割数据
通过视图可以对表中数据进行水平分割或垂直分割。用户而言对一个表或多个表中的数据列进行有选择的查看,简化数据结构;可以通过在食堂中使用WHERE子句水平分割数据,限制表中显示的数据。
4.提高安全性
视图可以作为一种安全机制。通过视图可以限定用户查看和修改的数据表和列,其他数据信息只能是有访问权限的用户才能查看和修改。例如,对于工资表中信息,一般用过只能看到表中的姓名、办公室、工作电话和部门等,只有复杂相关操作的人才有权限查看或修改。如果某一用户想要访问视图的结果集,必须被授予访问权限,视图所引用的表访问权限与视图权限的设置互不影响。在数据库开发设计时,不同级别用户共用一个数据库时应用得极其广泛。
二、存储过程也称为存储查询,是存储在数据库中预先定义的SQL语句。它可以将常用的或很复杂的工作预先用SQL语句写好,并用一个值得的名称存储起来。使用时,只需要调用该存储过程就可以自动完成命令。现在的程序员在代码中都不直接使用SQL字符串,而是利用创建和使用存储过程来代替。这样做的好处如下。
1.存储过程只在创建时进行编译,以后执行存储过程时都不需要重新编译;而SQL语句每执行一次都要编译一次,所以使用存储过程可以提供数据库执行速度。
2.当对数据库进行复杂操作时,可以将这些复杂操作利用存储过程封装起来与数据库提供的事务处理结合在一起使用。
3.存储过程的安全性高,可以设定只有魔鬼用户才具有对其指定存储过程的使用权。
4.存储过程可以将所有SQL语句代码集中存放于服务器,避免将.net代码和冗长的SQL语句混在一起,从而使.NET代码更容易维护。
5.在存储过程中可以使用输出参数,允许返回记录集或其他值。
6.存储过程可以重复使用,大大减少了数据库开发人员的工作量。
三、触发器是数据库服务器中发生事件时自动执行的特殊存储过程,它插入、删除或修改特表中的数据时触发执行。触发器通常可以强制执行一定的业务规则,以保持数据完整性、检查数据有效性、实现数据库管理任务和一些附加的功能。
在Sqlserver中一张表可以有多个触发器。用户可以根据INSERT、UPDATE或DELETE语句对触发器进行设置,也可以对一张表上的特别操作设置多个触发器。触发器可以包含复杂的T-SQL语句。触发器不能通过名称被直接调用,更不允许设置参数。
触发器的特点如下:
(1)触发器自动执行
对表中的数据进行修改后,触发器立即被激活。
(2)可以调用存储过程
为了实现复杂的数据库更新操作,触发器可以调用一个或多个存储过程,甚至可以通过调用外部过程(不是数据库管理系统本身)完成相应的操作。
(3)可以强化数据条件约束
触发器能够实现比CHECK约束更为复杂的数据完整性约束。在数据库中为了实现数据完整性约束,可以使用CHECK约束或触发器。CHECK约束不允许引用其他表中的例来完成检查工作,而触发器可以引用其他表中的列,更适合在大型数据库管理系统中用来约束数据的完整性。
(4)触发器可以禁止或回滚违反引用完整性的更改
触发器可以检测数据内的操作,从而取消数据库未经许可的更新操作,使数据库修改、更新操作更安全,数据库的运行也更稳定。
(5)级联、并行运行
触发器能够对数据库中的相关表实现级联更改。触发器是基于一个表创建的,但是可以针对多个表进行操作,实现数据库中相关表的级联更改。
(6)同表多触发器
一个表中可以同时存在3个不同操作的触发器(INSERT、UPDATE和DELETE)。
分享到:
相关推荐
理解存储过程的概念、作用、建立和调用方法。 二、实验原理 使用CREATE PROCEDURE语句创建存储过程,ALTER PROCEDURE语句修改存储过程,DROP PROCEDURE语句删除存储过程,存储过程有不带参数的、有带输入参数的、有...
SqlServer数据库字典--表.视图.函数.存储过程.触发器.主键.外键.约束.规则
关于数据库的视图、索引、存储过程和触发器的使用
数据库开发及ADO.Net_2_高级事务sql编程存储过程视图触发器
SQL的存储过程、触发器等建立视图存储过程触发器函数(自定义函数)索引 视图 视图是从一个或几个基本表(或视图)导出的表。不同的是,它是一虚表,数据库中只存放视图的定义,而不存放视图对应的数据,这些数据...
SQL2005 创建索引,视图,存储过程,触发器
SQL Server 数据库基础.pdf,SQL Server 数据管理(常用函数).pdf,SQL Server 数据查询(表的关联).pdf,SQL Server 事务索引视图.pdf,SQL Server 存储过程及触发器.pdf,SQL Server 编程及高级查询.pdf,让你从入门...
SQL 2005 中触发器、事务,存储过程、视图_T-SQL语句的详细讲解课程学习PPT(含有实例和作业题)
视图,触发器,存储过程,ER图.sqlserver数据库实训,广告公司管理系统,sqlsever数据库大作业,包括增删改查。。视图,触发器,存储过程,ER图.sqlserver数据库实训,广告公司管理系统,sqlsever数据库大作业,包括...
存储过程、触发器和函数实验.pdf
数据库开发及ADO.Net
学习sql存储过程,一则关于存储过程的学习笔记
SQL储存过程等的解密,破解字节不受限制,适用于SQLSERVER2000存储过程,函数,视图,触发器
实验四 存储过程、触发器与索引 一、实验目的 1.熟悉大型数据库实验环境,以MS SQL SERVER为例; 2.掌握视图; 3.掌握存储过程与触发器; 4.掌握MS SQL SERVER的导入和导出; 5.掌握MS SQL SERVER的索引。 二、实验...
详细讲解你:程序设计、视图、索引、游标、事务、触发器、锁、存储过程、XML、权限管理…… 并加以注释!
绿色版查看sql加密存储过程、视图等工具
典型的数据库编程对象包括视图、存储过程、触发器、函数等。视图在第10章已经讲过了,本章将讲述其他常用的数据库编程对象。存储过程是一个可重用的代码模块,可以高效率地完成指定的操作。触发器是一种特殊类型的...
其步骤就是:利用update操作触发器产生的2个虚拟表【inserted】用来存储修改的数据信息和【deleted】表,然后将对应的数据更新到对应数据表中的字段信息中; 1.首先创建3个表: a.信息表: USE [SQL-LI] BEGIN ...
SQL存储过程,视图,函数,触发器解密工具,本人测试可用。不知道是谁开发的。感谢作者,我拿来给大家分享。
打破了Microsoft发布SQLServer时声称的SQLServer存储过程,触发器,视图加密时采用的是不可逆算法,经加密后无法解密的神话。用SQLDecrypt将解密经过加密的任何长度的SQLServer存储过程,触发器,视图,不管其长度多...