视图(二)
- 1. 查询视图信息
- 1.1 查询和视图设计工具
- 1.2 关系图视图
- 1.3 条件窗格
- 1.4 SQL 窗格
- 1.5 结果窗格
- 1.6 SQL 编辑器
- 1.7 获取有关视图的信息
- 2. 创建基于视图的视图
- 3. 删除视图
1. 查询视图信息
1.1 查询和视图设计工具
打开视图的定义、显示查询视图的结果或创建或打开查询时,查询和视图设计器将会打开,它由4个窗格组成:
- 关系图窗格以图形形式显示通过数据连接选择的表或表值对象,同时显示它们之间的连接关系;
- 条件窗格用于指定查询选择,能通过将选择输入到一个类似电子表格的网格中来进行指定;
- 用户可可使用 SQL 窗格创建自己的 SQL 语句,也能使用条件窗格和关系图创建语句,在后面的这种情况下将在 SQL 窗格中设置以及相应地创建 SQL 语句;生成查询时,SQL 窗格将自动更新并重新设置格式以便于阅读;
- 结果窗格显示最近执行的选择查询结果;
当用户打开一个视图或查询时,以上部分或全部窗格都会随之打开;所打开的窗格取决于选项对话框中的设置以及用户所连接的数据库管理系统,默认设置是4个窗格都打开;
在数据库test → 打开视图 → 右击 dbo.B_T,选择设计,即可打开视图;
1.2 关系图视图
关系图窗格以图形形式显示用户通过数据连接的表或表值对象,同时也显示它们之间的连接关系;在关系图窗格中能进行的操作包括添加或移除表和表值对象,并指定要输出的数据列和创建或修改表和表值对象之间的连接;
当在关系图窗格中进行更改时,条件窗格和 SQL 窗格会自动更新以反映所做的更改;
每个表或表值对象在关系图窗格中均作为单独的窗口出现,每个矩形的标题栏中的图标表该矩形所代表的对象类型,如下图:
- 表
列出能添加到关系图窗格中的表;若要添加某个表,则选择该表,在单击添加菜单项,若要同时添加添加多个表,可先选择这些表,再单击添加菜单项; - 视图
列能添加到关系图窗格中的视图;若要添加某个视图,则选择该视图,再单击添加菜单项,若要同时添加多个视图,可先选择这些视图,再单击添加命令; - 函数
列出能添加到关系图窗格中的用户定义的函数;若要添加某个函数,再单击添加命令,若要同时添加多个函数,可先选定这些函数,再单击添加命令; - 本地表
列出由查询创建的表而不是数据库中的表; - 同义词
列出能添加到关系图窗格中的同义词;若要添加某个同义词,则选择该同义词,再单击添加命令,若要同时添加多个同义词,可先选择这些同义词,再单击添加命令;
注意: 若查询涉及连接,在连接所涉及的数据列之间将显示一条连接线,若没有显示连接的数据列,则查询和视图设计器会将线放在表示表或表值对象的矩形的标题栏中;查询和视图设计器为每个连接条件显示一条连接线;
连接线中间的图标指示表或表结构对象的连接方式,若连接子句使用等于(=)以外的运算符,则该运算符将显示在连接线图标中;
连接线末端的图标表示连接的类型;
1.3 条件窗格
条件窗格用于指定查询选择,可通过将选择输入到一个类似电子表格的网格中来进行指定;
在条件窗格中,能指定:
- 要显示的列及列名别名;
- 列所属的表;
- 计算列的表达式;
- 查询的排序顺序;
- 搜索结果;
- 分组条件,包括用于摘要报告的聚合函数;
- UPDATE 或 INSERT INTO 查询的新值;
- INSERT FROM 查询的目标列名;
在条件窗格中所做的更改将自动反映到关系图窗格和 SQL 窗格中,条件窗格也会自动更新以反映在其他窗格中所做的更改;
1.4 SQL 窗格
可使用 SQL 窗格创建自己的 SQL 语句,也能使用条件窗格和关系图窗格创建语句,在后面这种情况下将在 SQL 窗格中相应地创建 SQL 语句;
生成查询时,SQL 窗格夹将自动更新并重新设置以便于阅读;
若要打开 SQL 窗格,可先打开查询和视图设计器(选择相应的数据库对象,在数据库菜单中右击选择新建查询),在查询设计器菜单中指向窗格,再单击 SQL;
在 SQL 窗格中,可进行以下操作:
- 通过输入 SQL 语句创建新查询;
- 根据在关系图窗格和条件窗格中进行的设置,对查询和视图设计器创建的 SQL 语句进行修改;
- 输入语句以利用所使用数据的特有功能;
1.5 结果窗格
结果窗格显示最近执行的 SELECT 查询的结果(其他查询类型的结果在消息框中显示),若要打开结果窗格,可打开或创建一个查询或视图,或返回某个表的数据;
若默认情况下不显示结果窗格,可在查询设计器菜单中指向窗格,在单击结果命令;
用户可在结果窗格中执行的操作如下:
- 在类似电子表格的网格中查看最近执行的SELECT 查询的结果集;
- 对显示单个表或视图中的数据的查询或视图,可以编辑结果集中各个列的值、添加新行以及删除现有的行;
1.6 SQL 编辑器
使用 SQL 编辑器能编辑现有的存储过程、函数、触发器和 SQL 脚本,当用户打开上述任何对象时,此窗格将打开;
若要创建要对数据源运行的新的 SQL 语句,可使用查询设计器的 SQL 窗格;
SQL 编辑器提供了许多有用的 SQL 文本编辑功能,包括以下几种:
- 对 SQL 关键字进行颜色编码,以最大限度地减少语法和拼写错误;
- 生成主干存储过程和触发器;
- 提供有用的编辑功能,包括剪切、复制、粘贴和拖动操作;
- 更改编辑器的行为(工具菜单选择选项)以修改虚空格、自动换行、行号和制表符大小;
- 帮助管理调试点;
1.7 获取有关视图的信息
在 SQL Server 数据库中,通过使用 SQL Server Management Studio 或 T-SQL 能获取有关视图的定义或属性的信息;
- 使用对象资源管理器获取属性属性
使用 SSMS 获取视图属性的步骤为:单击包含要查看属性的视图的数据库旁的加号,单击加号以展开视图文件夹,右击要查看其属性的视图,选择属性,
视图属性对话框中显示以下属性:
- 服务器: 当前服务器实例的名称;
- 数据库: 包含此视图的数据库名称;
- 用户: 此链接的用户名;
- Schema: 显示视图所属的架构;
- 创建日期: 显示视图的创建日期;
- 名称: 当前视图的名称;
- 系统对象: 指示视图是否为系统对象,值为 TRUE 和 FALSE;
- ANSINULL: 指示创建对象时是否选择了ANSINULL 选项;
- 带引号的标识符: 指示创建对象时是否选择了带引号的标识符选项;
- 架构已绑定: 指示视图是否绑定到架构,值为 TRUE 和 FALSE;
- 已加密: 指示视图是覅哦已加密,值为 TRUE 和 FALSE;
- 使用视图设计器工具获取视图属性
(1)在对象资源管理器中,展开包含要查看属性和视图的数据库,再展开视图文件夹;
(2)右击要查看其属性的视图,再选中设计;
(3)右击关系图窗格中空白区域,再单击属性;
属性窗格中显示的属性说明:
- 名称: 当前视图名称;
- 服务器名称: 当前服务器实例的名称;
- 架构: 显示视图所属的架构;
- 数据库名称: 包含此视图的数据库的名称;
- 说明: 对当前视图的简短说明;
- GROUP BY 扩展: 指定对于基于聚合查询的视图,附加选项可用;
- SQL 注释: 显示 SQL 语句的说明,若要查看或编辑完整的说明,可单击相应的说明,在单击数据右侧的省略号(…),注释能包含视图使用者和使用时间等信息;
- Top 规范: 展开此项可显示 Top、“百分比” “表达式” 和 “等同值” 属性;
Top: 指定视图将包括 TOP 子句,该子句只返回结果集中的前 n 行或前百分之 n 行;默认情况下,视图将在结果集中返回前 10 行;使用此项可更改返回的行数 或指定不同的百分比;
表达式: 显示视图将返回的百分比(若“百分比” 设置为 “是”)或记录(如果 “百分比” 设置为 否);
百分比: 指定查询将包含一个 TOP 自己,仅返回结果集中前百分之 n 行;
等同值: 指定范围将包括WITH TIES
子句和基于百分比的 TOP 子句,WITH TIES
子句将非常有用;若设置了该选项,并且百分比截止位置在一组行的中间,且这些行在ORDER BY
子句中具有相同的值,则视图将会扩展,以包含所有这样的行; - 绑定到架构: 防止用户以会使视图定义失效的任何方式修改影响此视图的基础对象;
- 非重复值: 指定查询将在视图中选出重复值,当只使用表中的部分列且这些列可能包含重复值时,或者当连接两个或更多表的过程在结果集中产生的重复行时,此选项非常有用;选择该选项等效于向 SQL 窗格内的语句中国插入关键字
DISTNCT
; - 更新规范: 展开此项可显示 “使用视图规则更新” 和 “Check” 属性;
- 输出所有列: 显示所有列是否都由所选视图返回,这在创建视图时设置的;
2. 创建基于视图的视图
SQL 支持创建基于视图的视图,如下图:
3. 删除视图
当某个视图不再被需要时,可将其从数据库中删除,以回收当前使用的磁盘空间,这样数据库中的任何对象都能使用此回收空间;
- 限制和局限: 删除视图时,将从系统目录中删除视图的定义和有关视图的其他信息;还将删除视图的所有权限,使用
DROP TABLE
删除的表上的任何视图都必须使用DROP VIEW
显式删除; - 权限: 需要有对
SCHEMA
的ALTER
权限或对OBJECT
的CONTROL
权限;
从数据库中删除视图的步骤如下:
- 数据库 → 视图 文件夹 → 右击要删除的视图 → 单击删除 → 在删除对象对话框中,单击确定;