zoukankan      html  css  js  c++  java
  • 视图

    A、什么是视图

      1、含义:MySQL视图时一个虚拟表,其内容有查询定义,同真是的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不存在数据库以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,且在引用视图时动态生成

        1.1视图时一张虚拟表

        2.2不存在数据,存储查询语句,数据又查询语句动态生成

      2、如果我们编写了一个复杂的SQL去完成某些功能,为方便后期的调用,将sql语句封装带一个虚拟表,后期只需要调用虚拟表就可以获取对应SQL查询出的结果,这个虚拟表就叫做视图

      3、概念定义:用来创建视图的表加基表

      4、视图没有数据,底层基本表的数据搬运工

      5、注意点:

        1、视图是一个虚拟表

        2、不存数据,只存储语句,表中数据有查询语句动态获取

      6、好处

        1、简单:视图使用起来和表操作非常类似

        2、安全:方便进行权限控制(用户只能查询或修改他们在视图所能建到得到的数据,不能看到或用的底层基表的数据)

        3、数据独立

        总而言之,使用视图的大部分情况是为了保障数据安全性,提高性能查询效率

    B、视图的基本用法(可以在视图的基础上再次创建视图)

      1、创建视图

        关键字:view

        语法:create view 视图名 as sql查询语句;

      2、使用语法

        select * from 视图名;

      3、修改视图

        a、  关键字 alter--(修改已存在的视图)

          语法:alter view 视图名 as sql查询语句;

        b、  关键字 replace--(如果十日不存在就创建 存在就修改)

          语法:create or replace view 视图名 as sql查询语句;

      4、删除语法

        关键字: drop

        a、语法:drop view 视图名;

        b、一次删除多个:drop view 视图名1,视图名2,...;

      5、查看视图结构语法

        关键字 show create

        语法:show create view 视图名;

      6、视图更新

        a、可以使用更新语句操作视图

        b、以下情况不能进行视图更新

          a.1 包含以下关键字的sql语句:分组函数、group by 、having、distanct、union和union all

          a.2 常量视图

          a.3 包含子查询

          a.4 如果视图字段不包含基表的非空字段,也是无法进行新增

        c、更新限制

          c.1  with check option

          c.2  对视图的操作无论更新前还是更新后都必须符合查询条件限制

          c.3  特别针对

            1、有where查询的视图

            2、update前后都必须符合where查询条件

            3、insert的值必须符合where查询条件

          c.4  一旦使用with check option; 来约束视图,那么在视图上更新的数据必须符合视图的查询条件

      视图:我们不生成数据,我们只是数据的搬运工

  • 相关阅读:
    一篇就搞懂Mysql存储引擎和索引的文章
    ShardedJedisPipeline中sync()和syncAndReturnAll()区别
    17.win10安装Nginx及负载均衡配置,实现代理访问内网机器
    iDempiere 使用指南 系统安装 以及 virtualbox虚拟机下载
    程序员学数学【整理】
    element 表单校验
    draggable 拖拽列表排序(指定被拖拽的子元素)
    导出多个表的excel文件
    js自定义鼠标的图片
    table 导出简单的excel
  • 原文地址:https://www.cnblogs.com/dyxg/p/13628813.html
Copyright © 2011-2022 走看看