zoukankan      html  css  js  c++  java
  • SQL Sever MYSQL 视图实现的 2 种方式

    前期准备:

                1、create table person  # 假设这张表用来收录所以有地球人的基本信息。

                                 (ID bigint ,

                                 Name varchar(16),

                                 Country varchar(16)); 

               2、create view Chinise  # 这个视图用于查询所以有中国人的基本信息。

               as 

               select ID,Name,Country from Person

               where Country = 'China';

              

               3、查找中国叫张三的人

               select ID,Name,Country from Chinese where Name = '张三';

    --------------------------------------------------------------------------------------------------------------------------------------------------------

    方法 1、

             合并算法

             这中算法中、视图的数据还是只保存在表中、并没有从表中分离出来;也就是说我们对   张三    的查询会转化为

             select ID,Name,Country from Chinese where Name = '张三' and Country = 'China';引擎会帮我们完成

             条件的合并。合并算法内部是一个映射关系,如果 view的第一行 对就table 的X 行,view的第二行对应table 的第y 行。

             既然是一种映射对view第一行的修改也就是对 table 第X行的修改。delete时同理。

             也就是说合并算法支持对view 的 insert update delete select;(上文说的映射是 一对一映射)

             然、

             有些时候合并算法是没有办法完成的、也就是说对view 的 insert update delete select;都会引发错误。

             如:create view viewXXX as select Name ,count(*) from person group by Name;这样就不存在一对一的映射了,也就不能用合并算法了

    方法 2、

             临时表算法

             就是把view 查询出来的数据保存到一张临时表中、以后对view的操作就是对这张表的操作,哪怕是多个用户也是一张表。引擎会在合适的时间内

             更新这张表、

             

  • 相关阅读:
    Codeforces Round #620 (Div. 2) A-F代码 (暂无记录题解)
    Educational Codeforces Round 82 (Rated for Div. 2) A-E代码(暂无记录题解)
    微信小程序项目踩过的几个坑
    人工智能入门
    2017,知识与财富
    Cesium中Clock控件及时间序列瓦片动态加载
    Cesium基础使用介绍
    geotrellis使用(三十五)Cesium加载geotrellis TMS瓦片
    PhiloGL学习(6)——深情奉献:快乐的一家
    PhiloGL学习(5)——神说要有光,便有了光
  • 原文地址:https://www.cnblogs.com/JiangLe/p/4020193.html
Copyright © 2011-2022 走看看