1.视图的定义
视图是根据需要以一个表或多个表为基础,选择满足一定条件的行或列数据的静态定义。它是一种逻辑对象,是一种虚拟表。视图并不生成行或列的永久副本,并不占用存储空间,也就是说,视图就是保存在数据库中的SELECT 查询,视图定义后,可以像表一样访问它。
视图为应用程序提供了一种重新组织数据的方法,可以用视图方式来获得一些复杂报表的数据。
2.视图的优点
使用视图有很多优点,主要表现在:
(1)为用服务器托管户集中数据,简化用户的数据查询和处理,使得分散在多个表中的数据,通过视图定义在一起。
(2)简化操作,屏蔽了数据库的复杂性。
(3)重新定制数据,使得数据便于共享。
(4)合并分割数据,有利于数据输出到应用程序中。
(5)简化了用户权限的管理,增加了安全性。
3.视图的使用范围
视图通常用来集中、简化和自定义每个用户对数据库的不同认识。通常在以下情况下将使用视图;
(1)着重于特定数据。
(2)简化数据操作。
(3)自定义数据。
(4)数据的导入与导出。
(5)跨服务器组合分区数据库。
4.创建视图应考服务器托管虑的因素
(1)在CREATEVIEW 语句中,不能包括 ORDERBY、COMPUTE或COMPUTEBY 子句,也不能出现INTO关键字。
(2)创建视图的列最多为1024列。
(3)创建视图不能参考临时表。
(4)在一个批处理语句中,CREATEVIEW语句不能和其他SQL语句混合使用。
(5)尽量避免使用外连接创建视图。
5.创建视图的步骤
(1)编写用于创建视图的SELECT语句。
(2)对SELECT语句进行测试。
(3)检查测试结果是否正确,是否和预期的一样。
(4)创建视图。
6.使用SQL 语句创建和管理视图
创建视图是数据库应用中的常见需求,可以使用SQLServer管理平台创建和管理视图,也可以使用SQL语言创建和管理视图。
(1)使用SQL语句创建视图是根据对基本表的查询定义的,其命令格式如下:
CREATE VIEW AS
①从单个表派生出的视图
例:创建视图view_1,从“学生管理”数据库的“学生”表中,查询出所在院系为计算机系的,学生的学号和姓名资料,其中“学生”表结构如图所示。
CREATEVIEWview_1AS
SELECT学号,姓名
FROM 学生
WHERE所在院系=’计算机系’
基于视图view_1进行查询:
SELECT* FROMview_1
②从多个表派生出的视图
例:创建视图view_2, 从“学生管理”数据库的“学生”表和“成绩”表中查询出学生的学号、姓名、分数资料,其中“学生”表和“成绩”表结构如图所示。
CREATE VIEW view_2 AS
SELECT学号,姓名,分数
FROM学生,成绩
WHERE学生.学号=成绩.学号
对用户就好像有一个如图1-27所示的view_2表。
(2)对视图修改操作,使用ALTERVIEW语句。
例:修改view_1视图,从“学生管理”数据库的“学生”表中,查询出所在院系为计算机系的,女学生的学号和姓名资料,其中“学生”表结构如图1-20所示。
ALTER VIEW view_1 AS
SELECT学号,姓名
FROM学生
WHERE所在院系=’计算机系’
AND 性别=’女’
(3)对视图更新时,DBMS将转换为对基本表的更新,同样使用基本表的更新语句UPDATE语句。
例:将学生视图view_2中学号为“102001”的学生姓名改为“赵南”。
UPDATE view_2
SET姓名=’赵南’
WHERE学号=’102001’
(4)对视图的删除操作,使用DROPVIEW语句,命令格式为:
DROP VIEW
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net