SQL Sever MYSQL 视图实现的 2 种方式

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的操作就是对这张表的操作,哪怕是多个用户也是一张表。引擎会在合适的时间内

         更新这张表、

 

 

 

 

 

 

 

 

 

 

         

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109704.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • spring常规任务(轻便易)

    spring常规任务(轻便易)

    2022年1月12日
    39
  • 代价函数的意义

    代价函数的意义我们来复习上一节的知识:假设函数:hθ(x)=θ0+θ1xh_\theta(x)=\theta_0+\theta_1xhθ​(x)=θ0​+θ1​x参数:θ0,θ1\theta_0,\theta_1θ0​,θ1​代价函数:J(θ0,θ1)=12m∑i=1i=m(h(xi)−yi)2J(\theta_0,\theta_1)=\frac{1}{2m}\sum_{i=1}^{i=m}(h(x^i)…

    2022年5月10日
    52
  • 操作系统维护相关总结「建议收藏」

    操作系统维护相关总结「建议收藏」操作系统维护相关总结声明:引用请注明出处http://blog.csdn.net/lg1259156776/说明:由于前段时间遭受了电脑固态硬盘故障系统崩溃,数据未及时备份无法读取而导致的痛苦,这里

    2022年8月3日
    4
  • linux修改文件名称 rename_shell重命名文件指令

    linux修改文件名称 rename_shell重命名文件指令Linux命令中的rename命令主要用于给文件重命名,与mv命令有些类似,但rename可以对批量文件进行重命名,而mv命令则只能对单个文件重命名,下面就给大家详细介绍下Linuxrename命令的使用方法吧。Linux的rename命令有两个版本,一个是C语言版本的,一个是Perl语言版本的,早期的Linux发行版基本上使用的是C语言版本的,现在已经很难见到C语言版本的了,由于历史原因,…

    2025年9月12日
    5
  • BulkInsert方法实现批量导入

    BulkInsert方法实现批量导入BulkInsert方法实现批量导入

    2022年4月25日
    43
  • 【运维篇】resize2fs命令 – 调整文件系统大小

    【运维篇】resize2fs命令 – 调整文件系统大小resize2fs命令是用来增大或者收缩未加载的“ext2/ext3/ext4”文件系统的大小。语法格式:resize2fs[参数][文件]常用参数:-d 打开调试特性 -p 打印已完成的百分比进度条 -f 强制执行调整大小操作,覆盖掉安全检查操作 -F 开始执行调整大小前,刷新文件系统设备的缓冲区 参考实例调整逻辑卷文件系统大小:[root@linuxcool~]#resize2fs/dev/linuxprobe/vo打开调试特性

    2022年10月21日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号