教程分类名称
Microsoft SQL Server 介绍
SQL Server 2014 各版本介绍
SQL Ssever 安装.NET3.5 框架
SQL Server 2014 安装说明
SQL Server 管理套件(SSMS)
SQL Server 创建数据库
SQL Server 创建表
SQL Server添加数据
SQL Server SQL脚本
SQL Server查询设计器
SQL Server创建视图
SQL Server存储过程
SQL Server服务器角色
SQL Server 数据库模式
SQL Server链接服务器
文章导航
Microsoft SQ...
SQL Server 2...
SQL Ssever 安...
SQL Server 2...
SQL Server 管...
SQL Server 创...
SQL Server 创建表
SQL Server添加数据
SQL Server S...
SQL Server查询设计器
SQL Server创建视图
SQL Server存储过程
SQL Server服务器角色
SQL Server 数...
SQL Server链接服务器
打开导航
# SQL Server创建视图 从用户角度来看,一个视图是从一个特定的角度来查看数据库中的数据 。 从数据库系统内部来看,一个视图是由 SELECT 语句组成的查询定义的虚拟表(因为一个视图可以拉动多个表,并汇总数据在一起并将其显示,就好像它是一个单一的表) 视图是由一张或多张表中的数据组成的,当你运行视图,会看到它的结果,就像打开一个表时一样。 从数据库系统外部来看,视图就如同**一**张表一样,对表能够进行的一般操作都可以应用于视图,例如查询,插入,修改,删除操作等。 ## SQL Server视图的优点 视图可以执行以下操作: - 限制访问特定的表中的行 - 限制访问特定的表中的列 - 从多个表中加入列,并呈现出来,好像他们是一个单一的表的一部分 - 呈现汇总的信息(如COUNT函数的结果) ## SQL Server视图语法 通过使用 CREATE VIEW 语句创建一个视图,其次是 SELECT 语句,如下: ```sql CREATE VIEW ViewName AS SELECT ... ``` ## SQL Server创建视图 我们以前使用的查询设计器创建两个表中选择数据的查询。 现在让我们将查询保存为一个名为 “ToDoList” 的视图。 我们需要做的就是把 CREATE VIEW ToDoList 的 AS 查询,如下: ```sql CREATE VIEW ToDoList AS SELECT Tasks.TaskName, Tasks.Description FROM Status INNER JOIN Tasks ON Status.StatusId = Tasks.StatusId WHERE (Status.StatusId = 1) ``` 运行该脚本,在左窗格中刷新浏览文件夹,你会看到视图就在左窗格中: ![](/images/1591375467895.png) ## SQL Server 运行视图 创建视图后,就可以简单地查看结果,就像你会选择任何表。 可以简单地键入 select * from todolist,它会运行完整的查询,而不是输入出大量的 SELECT 语句的 INNER JOIN : ![](/images/1591375450724.png) *注:*也可以在视图上单击鼠标右键,并选择 "Select Top 1000 Rows". ## 数据更新 该视图将返回最新的数据。 如果表中的数据发生变化时,视图的结果会改变过;所以,如果要添加新任务以及状态 "To Do", 下一次运行来看,这将包括在结果集中的新纪录。 ## 修改视图 通过使用 ALTER 修改现有的视图,而不是 CREATE。 如果我们想要更改视图就要使用 StatusName 字段,而不是 StatusId,做法如下: ```sql ALTER VIEW ToDoList AS SELECT Tasks.TaskName, Tasks.Description FROM Status INNER JOIN Tasks ON Status.StatusId = Tasks.StatusId WHERE (Status.StatusName = 'To Do') ``` *注:*使用查询设计器也可以右键单击视图,然后选择设计来修改您的视图。 正如你所看到的,视图让您保存查询,以便可以做一个 SELECT,再次运行它也会比较简单。 但它们的确有其局限性:它们允许选择数据,但不允许执行任何业务逻辑,如条件语句等。