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; 来约束视图,那么在视图上更新的数据必须符合视图的查询条件

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

  • 相关阅读:
    Win8系统 Python安装
    一些安卓开源框架整理
    Android 媒体键监听以及模拟媒体键盘的实现 demo
    android View 自动 GONE 问题
    Android 定时器TimerTask 简单使用
    关于Android studio 相对 eclipse 优点
    Java序列化与反序列化
    android shape的使用 边框
    Android Studio 修改 包名 package name
    Android WebView Long Press长按保存图片到手机
  • 原文地址:https://www.cnblogs.com/dyxg/p/13628813.html
Copyright © 2011-2022 走看看