zoukankan      html  css  js  c++  java
  • sqlserver——视图

    数据库中的视图是一个虚拟表。同真实的表一样,视图包含一系列带有名称的列和行数据,行和列数据用来自由定义视图和查询所引用的表,并且在引用视图时动态产生。本篇将通过一些实例来介绍视图的概念,视图的作用,创建视图,查看视图,修改视图,更新和删除视图等SQL Server的数据库知识。

    一、概述

    视图是从一个或者多个表导出的,它的行为与表非常相似,但视图是一个虚拟表,在视图中可以使用SELECT语句查询数据,以及使用insert、update和delete语句修改记录,对于视图的操作最终转化为对基本数据表的操作。视图不仅可以方便操作,而且可以保障数据库系统的安全性。

     视图一经定义便存储在数据库中,与其相对应的数据并没有像表数据那样在数据库中在存储一份,通过视图看到的数据只是存放在基本表中的数据。可以对其进行增删该查,通过视图对数据修改,基本表数据也对应变化,反之亦然。

    二、分类

      :标准视图:标准视图组合了一个或多个表中的数据,可以获得使用视图中的大多数好处,包括重点将放在特定的数据上及简化数据操作。

      索引视图:索引视图是被具体化了的视图,即它已经经过计算并存储。可以为视图创建索引,对视图创建一个唯一的聚集索引。索引视图可以显著提高某些类型查询的性能,索引视图尤其适于聚合许多行的查询,但它们不太适于经常更新的基本数据集。

      分区视图:

    分区视图在一台多多台服务器间水平连接一组成员表的分区数据,这样,数据看上去如同来自一个表。连接本地同一个SQL Server实例中的成员表的视图是一个本地区分视图。

    三、优点和作用

    3.1.简单化

     看到的就是需要的,视图不仅可以简化用户对数据的理解,也可以简化对它们的操作,那些经常使用的查询可以被定义为视图,从而使得用户不必为以后的每次操作指定全部的条件。

    3.2.安全性

     视图可以作为一种安全机制。通过视图用户只能查看和修改他们所能看到的数据。其它或表既不可见也不可以访问。如果某一用户想要访问视图的,必须授予其访问权限。视图所引用表的访问权限与视图权限的设置互不影响。

    3.3.逻辑数据独立性

     视图可以帮助用户屏蔽真实表结构变化带来的影响。

    四、

    视图语法结构

    --语法
    CREATE VIEW view_name
     AS
        SELECT column_name(s) FROM table_name
    WHERE condition

    测试数据准备

    use sample_db;
    create table studentTable(
        id int identity(1,1)primary key,
        name varchar(20),
        gender char(2),
        age int,
    )
    insert into studentTable (name,gender,age)
    values
        ('刘备','',28),
        ('张飞','',24),
        ('关羽','',26); 

    创建视图

    --创建视图
    if (exists (select * from sys.objects where name = 'student_view'))
        drop view student_view
    go
    --student_view()不实用参数,默认为基础表中的列名称
    create view student_view 
    as
    select name,age from studentTable where age>24;
    --执行视图
    select * from student_view;

    修改视图

    alter view view_name
    as select ......
    where ......-

    查看视图的信息

    • 使用sp_help存储过程查看视图的定义信息
    • 使用sp_helptext系统存储过程使用来显示规则,默认值,未加密的存储过程,用户定义函数,触发器或视图的文本,语法
    exec  sp_help 'student_view';
    exec sp_helptext 'student_view';
  • 相关阅读:
    Python学习第七天——随机码生成
    Python学习第六天——Fibonacci
    Python学习第五天——递归函数
    Python学习第四天——文件修改
    Python学习第三天——三级目录
    Python学习第二天——购物车程序
    Python学习第一天——用户名登录退出
    Linux什么时候在pc机上有一席之地
    关于系统设计时性能以及可扩展性的考虑
    HyberLedger Fabric学习(4)-chaincode学习(操作人员)
  • 原文地址:https://www.cnblogs.com/javier520/p/10851047.html
Copyright © 2011-2022 走看看