视图是从一个或者多个数据表或视图中导出的表,这个表称为虚拟表,它没有自己的真实数据,是一些SQL查询语句的集合,它的结构和数据是对数据表进行查询的结果。
使用视图可以简化用户处理数据的方式;可以定制不同用户对数据的访问权限;允许用户以不同的方式查看数据;对于不必要的数据或者敏感数据可以不在视图中显示;使用户能够在表的架构更改时为表创建向后兼容接口;还可以将数据导出到其他应用程序。
总之,视图为数据提供了多种多样的表现形式,我们可以通过它浏览表中感兴趣的数据。
在 SQL Server 2005中,视图可以分为3类:标准视图、索引视图和分区视图。
一、使用SQL Server 2005数据库管理系统创建视图
1. 启动SQL Server 2005。
2. 在“对象资源管理器”窗口中找到Student数据库,打开Student文件夹,在“视图”项上单击鼠标右键,在弹出的子菜单中选择“新建视图”命令。如下图所示:
3. 弹出“添加表”对话框。如下图所示:
4. 在“添加表”对话框中,可以按下Ctrl键同时选择几个要添加的表,然后按“添加”按钮;或者选择一个表,点击一次“添加”按钮,直到选择完要添加的所有表以后,点击“关闭”按钮。这时视图设计器窗口如下图所示:
注意:
点击视图设计器窗口左上角的“显示关系图窗格”按钮,可以显示“表选择区”。如下图所示:
同样,点击“显示条件窗格”按钮,可以显示“列选择区”;点击“显示 SQL 窗格”按钮,可以显示“SQL语句区”;点击“显示结果窗格”按钮,可以显示“视图结果区”。
5. 如果要添加新的数据表,可以使用鼠标右键单击“表选择区”的空白处,在弹出的子菜单中选择“添加表”命令。如下图所示:
会弹出“添加表”对话框,可以继续为视图添加要引用的数据表或视图。
6. 如果想删除已经添加的数据表或者视图,请在“表选择区”中点击鼠标右键选择要删除的数据表或者视图,在弹出的子菜单中选择“移除”命令,即可删除。如下图所示:
或者使用鼠标左键点击要删除的数据表或视图,然后在键盘上直接按下“Delete”键,也可以删除。
7. 在“关系图窗格”中,可以建立表与表之间的“JOIN...ON”关系。比如,添加数据表“Student”和“Chengji”以后,“Student”表中的“xuehao”字段和“Chengji”表中的“xuehao”字段相同,那么它们中间就会有一根线连着,如下图所示:
如果没有一根线连着,那么只需要将“Student”表中的“xuehao”字段拖动到“Chengji”表中的“xuehao”字段上面即可。比如,将“Student”表中的“xingming”字段拖动到“Chengji”表中的“xingming”字段上面,就会出现一根线连着,如下图所示:
如果想删除连线,在连线上面单击鼠标右键,在弹出的子菜单中选择“移除”命令即可。
8. 在“关系窗格”中,选择数据表前面的复选框,可以设置视图要输出的字段。同时,在“条件窗格”中,还可以在要输出的字段上进行重新选择。如下图所示:
9. 在“条件窗格”中可以设置要过滤的查询条件。
10. 在“SQL 窗格”中显示的是设置完成以后的SQL语句,这个Select查询语句也就是视图要存储的查询语句。如下图所示:
11. 所有查询条件设置完成以后,单击“执行 SQL”按钮,执行Select语句,检查是否正确。如下图所示:
12. 如果运行正确,会在“结果窗格”中显示如下图所示的输出结果:
13. 测试正常之后,点击“保存”按钮,弹出“选择名称”对话框,如下图所示:
14. 输入要保存的视图名称,点击“确定”按钮即可。
二、使用CREATE VIEW语句创建视图
使用CREATE VIEW语句创建视图的语法如下:
CREATE VIEW [ schema_name . ] view_name --架构名.视图名
[ (column [ ,...n ] ) ] --列名
[ WITH <view_attribute> [ ,...n ] ]
AS select_statement [ ; ] --搜索语句
[ WITH CHECK OPTION ] --强制修改语句都必须符合在select_ statement中设置的条件
<view_attribute> ::=
{
[ ENCRYPTION ] --加密
[ SCHEMABINDING ] --绑定架构
[ VIEW_METADATA ]
} --返回有关视图的元数据信息
CREATE VIEW语句的参数说明如下:
参数 | 说明 |
---|---|
schema_name | 视图所属架构的名称 |
view_name | 视图的名称。视图名称必须符合有关标识符的规则。可以选择是否指定视图所有者的名称。 |
column | 视图中的列使用的名称。一般只有列是从算术表达式、函数或常量派生出来的或者列的指定名称不同于来源列的名称时,才需要使用。 |
AS | 指定视图要执行的操作。 |
select_statement | 定义视图的SELECT语句。 |
WITH CHECK OPTION | 强制针对视图执行的所有数据的修改语句都必须符合在select_statement中设置的条件。 |
ENCRYPTION | 对视图进行加密。 |
SCHEMABINDING | 将视图绑定到基础表的架构。 |
VIEW_METADATA | 指定为引用视图的查询请求浏览模式的元数据时,SQL Server实例将向DB-Library、ODBC和OLE DB API返回有关视图的元数据信息,而不返回基表的元数据信息。 |
示例:
1. 点击工具栏的“新建查询”命令,在查询分析器的文本编辑窗口中输入下面的代码:
CREATE VIEW MyView
AS
SELECT * FROM Student;
2. 点击工具栏中的“执行”按钮,运行窗口中的SQL语句,即可自动创建“MyView”视图。
请阅读使用SQL语句创建SQL Server 2005数据库。