SQLServer视图(二)

转载 2007年09月17日 17:29:00

创建视图

创建视图与创建数据表一样,可以使用SQL Server Management StudioT-SQL语句两种方法,下面分别介绍这两种方法:

SQL Server Management Studio中创建视图

SQL Server Management Studio中创建视图的方法与创建数据表的方法不同,下面举例说明如何在SQL Server Management Studio中创建视图:

1)启动【SQL Server Management Studio】,连接到本地默认实例,在【对象资源管理器】窗口里,选择本地数据库实例à【数据库】àNorthwindà【视图】。

2)右击【视图】,在弹出的快捷菜单里选择【新建视图】选项。

3)出现的如图9.2所示的视图设计对话框,其上有个【添加表】对话框,可以将要引用的表添加到视图设计对话框上,在本例中,添加产品、订单、订单明细、雇员和运货商五个表。

2 视图设计对话框

4)添加完数据表之后,单击【关闭】按钮,返回到如图9.3所示的【视图设计】窗口。如果还要添加新的数据表,可以右击【关系图窗格】的空白处,在弹出的快捷菜单里选择【添加表】选项,则会弹出如图9.2中所示的【添加表】对话框,然后继续为视图添加引用表或视图。如果要移除已经添加的数据表或视图,可以右击在【关系图窗格】里选择要移除的数据表或视图,在弹出的快捷菜单里选择【移除】选项,或选中要移除的数据表或视图后,直接按【Delete】按钮移除。

图3 视图设计

5)在【关系图窗格】里,可以建立表与表之间的JOIN…ON关系,如【产品】表的产品ID”与【订单明细】表中的产品ID”相等,那么只要将【产品】表中的产品ID”字段拖拽到【订单明细】表中的产品ID”字段上即可。此时两个表之间将会有一根线连着的。

6)在【关系图窗格】里选择数据表字段前的复选框,可以设置视图要输出的字段,同样,在【条件窗格】里也可设置要输出的字段。

7)在【条件窗格】里还可以设置要过滤的查询条件。

8)设置完后的SQL语句,会显示在【SQL窗格】里,这个Select语句也就是视图所要存储的查询语句。

9)所有查询条件设置完毕之后,单击【执行SQL】按钮,试运行Select语句是否正确。

10)在一切测试都正常之后,单击【保存】按钮,在弹出的对话框里输入视图名称,再单击【确定】按钮完成操作。  

2.2  Create view创建视图

2.2.1  基本语法

T-SQLcreate 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 ]     }                                 --返回有关视图的元数据信息

2.2.2  参数说明

Create view的参数有:

l  schema_name:视图所属架构名

l  view_name:视图名

l  column:视图中所使用的列名,一般只有列是从算术表达式、函数或常量派生出来的或者列的指定名称不同于来源列的名称时,才需要使用。

l  select_statement:搜索语句。

l  WITH CHECK OPTION:强制针对视图执行的所有数据修改语句都必须符合在select_ statement中设置的条件。

l  ENCRYPTION:加密视图。

l  SCHEMABINDING:将视图绑定到基础表的架构。

l  VIEW_METADATA:指定为引用视图的查询请求浏览模式的元数据时,SQL Server 实例将向 DB-LibraryODBC OLE DB API 返回有关视图的元数据信息,而不返回基表的元数据信息。

2.2.3  简单用法

例一、创建一个视图,用于查看产品、类别和供应商,其代码如下:

--创建视图

CREATE VIEW view_例一

         AS

         SELECT 产品.产品ID,产品.产品名称,类别.类别名称,供应商.公司名称

                   FROM 产品

                   JOIN 类别 ON 产品.类别ID = 类别.类别ID

                   JOIN 供应商 ON 产品.供应商ID = 供应商.供应商ID

GO

--查看视图

SELECT * FROM view_例一

GO

其运行结果如图9.4所示:

4 显示视图

2.2.4  给视图字段加上别名

例二、创建一个视图,用于查看产品、类别和供应商,并修改其字段名,其代码如下:

CREATE VIEW view_例二(产品编号,产品名称,产品类别,供应商名称)

         AS

         SELECT 产品.产品ID,产品.产品名称,类别.类别名称,供应商.公司名称

                   FROM 产品

                   JOIN 类别 ON 产品.类别ID = 类别.类别ID

                   JOIN 供应商 ON 产品.供应商ID = 供应商.供应商ID

GO

SELECT * FROM view_例二

GO

其运行结果如图9.5所示,视图的字段名与图9.4中所显示的不一样。

9.5 为视图加上字段别名

2.2.5  注意事项

在用create view创建视图时,select子句里不能包括以下内容:

不能包括computecompute by子句

不能包括order by子句,除非在select子句里有top子句

不能包括option子句

不能包括into关键字

不能引用临时表或表变量

例三、创建一个视图,查看最新100项产品的产品名称、类别名称和供应商。以下的代码是错误的:

CREATE VIEW view_例三

         AS

         SELECT 产品.产品ID,产品.产品名称,类别.类别名称,供应商.公司名称

                   FROM 产品

                   JOIN 类别 ON 产品.类别ID = 类别.类别ID

                   JOIN 供应商 ON 产品.供应商ID = 供应商.供应商ID

         ORDER BY 产品.产品ID DESC                  --不能在select子句里使用order by子句

只有在创建好视图后才可以使用order by子句,如:

SELECT top 100 * FROM view_例三

         ORDER BY 产品ID DESC

但是如果在select子句里指了top的话,可以使用order by子句,以下代码就是正确的:

CREATE VIEW view_例三

         AS

         SELECT top 100 产品.产品ID,产品.产品名称,类别.类别名称,供应商.公司名称

                   FROM 产品

                   JOIN 类别 ON 产品.类别ID = 类别.类别ID

                   JOIN 供应商 ON 产品.供应商ID = 供应商.供应商ID

         ORDER BY 产品.产品ID DESC

 

SQL server视图的介绍,创建与使用

视图 视图是一种虚拟表,来自一个或者多个表的行或者列,视图并不是数据库中存储的数据值,可以简单的理解视图就是封装了一段查询语句,调用该视图就得到查询语句查询出来的临时表. --------------...
  • miniduhua
  • miniduhua
  • 2016年08月03日 11:43
  • 8847

SQL server中视图的更新

SQL Server中更新视图, 可能出现的错误及处理.          定义视图后,对视图的查询没有什么限制,可以像对待表一样进行操作。但是, 如果对视图中的元组进行更新操作(INSERT,UPD...
  • zhangxing__
  • zhangxing__
  • 2013年12月07日 18:46
  • 5043

使用SQL Server视图的优缺点

SQL Server视图我们经常会用的到,下面就为您介绍使用SQL Server视图的优缺点,希望可以对您SQL Server视图有更多的了解。在程序设计的时候必须先了解视图的优缺点,这样可以扬长避短...
  • jimlong
  • jimlong
  • 2011年07月15日 11:31
  • 7662

SQLServer 动态sql创建指定数据库下的视图

如果想要动态的创建指定数据库的视图,例如:编辑的sql脚本在oem数据库下,想要动态创建一个视图到KK_test数据库下,可以使用如下方法。 Sql代码   /** 模...
  • dotedy
  • dotedy
  • 2016年01月11日 16:45
  • 985

SqlServer中视图、索引、存储过程等优缺点的介绍

1.视图 (1).什么是视图? 视图(View)作为一种数据库对象,为用户提供了一个可以检索数据表中的数据方式。用户通过视图来浏览数据表中感兴趣的部分或全部数据,而数据的物理存储位置仍然在表中。 视图...
  • qq_14974339
  • qq_14974339
  • 2017年01月05日 14:01
  • 680

SQLServer学习笔记 --- 如何获取视图 view 的字段名和字段类型

SQLServer学习笔记 --- 如何获取视图 view 的字段名和字段类型
  • u012965373
  • u012965373
  • 2016年10月11日 20:21
  • 1775

刷新SqlServer数据库中所有的视图

ALTER PROCEDURE sp_refallview AS --刷新所有视图 DECLARE @ViewName VARCHAR(MAX); DECLARE @i INT; SET @i = ...
  • smartsmile2012
  • smartsmile2012
  • 2017年01月13日 14:26
  • 1759

SqlServer在视图上创建索引

在视图上创建索引需要三个条件: 一、视图必须绑定到架构。 要做到这点,在 CREATE VIEW 语句中,必须加上 WITH SCHEMABINDING,如果是使用企业管理器,则在设计界面的空白处...
  • 3150379
  • 3150379
  • 2015年03月22日 10:47
  • 4139

SQL Server数据库授权指定用户访问指定表或视图

1.创建登录账户 create login 登录名 with password=’密码’, default_database=数据库2.创建角色 exec sp_addrole ‘角色名’3....
  • markximo
  • markximo
  • 2017年04月06日 10:48
  • 1494

[疯狂Java]SQL-DDL:索引、视图

1. 索引:     1) 就相当于书的目录,目的就是为了加速查找想要的内容;     2) 数据库的索引(index)也是用来加速表的查询,通常可以为表的一列或者多列的组合建立索引,这样查询索引列的...
  • Lirx_Tech
  • Lirx_Tech
  • 2016年04月07日 14:28
  • 712
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQLServer视图(二)
举报原因:
原因补充:

(最多只允许输入30个字)