返回介绍

SQL Server 视图 - SQL Server 教程

发布于 2025-02-22 13:47:10 字数 2010 浏览 0 评论 0 收藏 0

在 SQL Server 中,视图是被存储在数据库中的预写查询。视图是由一个 SELECT 语句,当你运行视图,会看到它的结果,就像打开一个表时一样。 有些人喜欢把视图称作为虚拟表。这是因为,一个视图可以拉动多个表,并汇总数据在一起并将其显示,就好像它是一个单一的表。

视图的优点

当有多个用户提供不同级别的访问权限,需要看到在数据库中(但不一定是所有数据) 中的数据的各不同部分的视图,可能是有用的。视图可以执行以下操作:

  • 限制访问特定的表中的行
  • 限制访问特定的表中的列
  • 从多个表中加入列,并呈现出来,好像他们是一个单一的表的一部分
  • 呈现汇总的信息(如 COUNT 函数的结果)

视图语法

创建一个视图通过使用 CREATE VIEW 语句,其次是 SELECT 语句。

CREATE VIEW ViewName AS
SELECT ...

创建视图

我们以前使用的查询设计器创建两个表中选择数据的查询。现在让我们在查询并将其保存为一个名为“ToDoList”的视图。基本上,我们需要做的就是把 CREATE VIEW ToDoList 的 AS 查询,像这样的面前:

CREATE VIEW ToDoList AS
SELECT    Tasks.TaskName, Tasks.Description
FROM    Status INNER JOIN
            Tasks ON Status.StatusId = Tasks.StatusId
WHERE    (Status.StatusId = 1)

一旦运行该脚本,刷新浏览文件夹在左窗格中,你会看到视图就在左窗格中:

Screenshot of view

运行视图

所以,现在你已经创建的视图,你可以简单地查看结果选择它就像你会选择任何表。而不是输入出大 SELECT 语句的 INNER JOIN 等等,可以简单地键入 select* from todolist,它会运行完整的查询: Screenshot of view results

注:也可以在视图上单击鼠标右键,并选择 "Select Top 1000 Rows".

数据更新

该视图将返回最新的数据。如果表中的数据发生变化时,视图的结果会改变过。所以,如果要添加新任务以及状态 "To Do", 下一次运行来看,这将包括在结果集中的新纪录。

修改视图

可以通过使用 ALTER 而不是 CREATE 修改现有的视图。

因此,如果我们想要更改视图使用 StatusName 字段,而不是 StatusId,我们可以这样做:

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,再次运行它也会比较简单。但它们的确有其局限性。它们允许选择数据,但不允许执行任何业务逻辑,如条件语句等。 要做到这一点需要一个 存储过程

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文