zoukankan      html  css  js  c++  java
  • 数据库学习之七--视图(View)

    一、定义

      视图:指计算机数据库中的一个临时虚拟表,其内容由查询定义;同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。

    二、优点

      1. 优点:

        a. 无需保存数据,可以节省存储设备的容量;

        b. 将频繁使用的SELECT 语句保存成视图,不用每次都重新书写。特别是在进行汇总以及复杂的查询条件导致SELECT 语句非常庞大时可以大大提高效率;

        c. 视图中的数据会随着原表的变化自动更新,可以保证数据的最新状态;

        d. mysql允许基于其他视图创建视图;

      2. 缺点:

        a. 定义视图时不能使用ORDER BY子句;

        b. 无法将视图的更改反映到原表中的;记住:视图是一张衍生的表,原表改动,视图会随着变动,反之,视图无法改变原表,所以视图无法插入,删除或  者更新数据;

      注: 应该将经常使用的SELECT语句做成视图。

    三、示例:

      1. 数据库中现有两张表Employee_China和Employ_USA, 如下:

      

       

       2.创建视图

    CREATE VIEW employee AS
    SELECT FistName, lastName, Age, City FROM Employee_China
    UNION 
    SELECT FistName, lastName, Age, City FROM Employee_USA
    GROUP BY age 

      创建视图成功返回结果:

      

       3.查看视图字段

    DESCRIBE employee;

      运行结果:

      

      4. 查看数据库中有所有的视图:

    show table status where comment='view';

      运行结果:

      

       注:由于这张表太长,只截取了一半;

      5. 查看数据库中所有视图表

    show full tables where Table_type = "VIEW";

      运行结果:

      

      6. 删除视图

    Drop VIEW employee;

    四、视图的使用

      1. 应该尽量将频繁使用的查询作为视图;

      2. 视图可以和表一样的使用和操作,不过试图是一张临时虚表;

      

  • 相关阅读:
    [Leetcode] Symmetric tree 对称二叉树
    [Leetcode] Populating next right pointer in each node ii 填充每个节点的右指针
    [Leetcode] Populating next right pointer in each node 填充每个节点的右指针
    [Leetcode] Same tree判断是否为相同树
    [Leetcode] Path Sum II路径和
    [Leetcode] Path Sum路径和
    [Leetcode] Binary tree maximum path sum求二叉树最大路径和
    [Leetcode] The minimum depth of binary tree二叉树的最小深度
    设计模式-工厂方法模式
    设计模式-简单工厂模式
  • 原文地址:https://www.cnblogs.com/anlia/p/11738991.html
Copyright © 2011-2022 走看看