zoukankan      html  css  js  c++  java
  • SQL Server视图

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



  • 相关阅读:
    DbUtil组件及C3P0数据库连接池组件的使用
    servlet过滤器
    JDBC实现往MySQL插入百万级数据
    学会怎样使用Jsp 内置标签、jstl标签库及自定义标签
    一种c#深拷贝方式完胜java深拷贝(实现上的对比)
    JSP三个指令及9个内置对象
    java web工程的错误页面的简单配置
    理解java Web项目中的路径问题
    web应用程序servlet的映射名称的规则及请求过程
    tomcat上servlet程序的配置与处理servlet请求过程
  • 原文地址:https://www.cnblogs.com/borter/p/12452716.html
Copyright © 2011-2022 走看看