前期准备:

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

更新这张表、

SQL Sever MYSQL 视图实现的 2 种方式的更多相关文章

  1. mysql实现分页的几种方式

    mysql实现分页的几种方式: 第一种:使用框架自带的pageable来进行分页 package com.cellstrain.icell.repository.repositoryImpl; imp ...

  2. Mysql查看版本号的五种方式介绍

    Mysql查看版本号的五种方式介绍 作者: 字体:[增加 减小] 类型:转载 时间:2013-05-03   一.使用命令行模式进入mysql会看到最开始的提示符;二.命令行中使用status可以看到 ...

  3. SQL Server 2008 数据库同步的两种方式 (发布、订阅)

    参考转载: SQL Server 2008 数据库同步的两种方式 (发布.订阅) 使用Sqlserver事务发布实现数据同步

  4. mysql级联更新的两种方式:触发器更新和外键

    1.mysql级联更新有两种方式:触发器更新和外键更新. 2.触发器更新和外键更新的目的都是为了保证数据完整性. 我们通常有这样的需求:删除表Table 1中记录,需要同时删除其它表中与Table 1 ...

  5. SQL优化 MySQL版 - 索引分类、创建方式、删除索引、查看索引、SQL性能问题

    SQL优化 MySQL版  - 索引分类.创建方式.删除索引.查看索引.SQL性能问题 作者 Stanley 罗昊 [转载请注明出处和署名,谢谢!] 索引分类 单值索引 单的意思就是单列的值,比如说有 ...

  6. [Mysql]查看版本号的五种方式

    [Mysql]查看版本号的五种方式   目录(?)[+]   查看版本信息 #1 使用命令行模式进入mysql会看到最开始的提示符 Your MySQL connection id is 3Serve ...

  7. MySQL查看版本号的五种方式介绍1111111

    MySQL查看版本号的五种方式介绍 1 命令行模式登录MySQL [root@localhost ~]# mysql -uroot -p Enter password: Welcome to the ...

  8. mysql复制表的两种方式

    mysql复制表的两种方式. 第一.只复制表结构到新表 create table 新表 select * from 旧表 where 1=2 或者 create table 新表 like 旧表 第二 ...

  9. 利用"SQL"语句自动生成序号的两种方式

    1.首先,我们来介绍第一种方式: ◆查询的SQL语句如下: select row_number() over (order by name) as rowid, sysobjects.[name] f ...

随机推荐

  1. python bottle 框架开发任务管理系统 V_1.0版

    经过1-2个星期的开发,现在开发了个半成品(UI现在比较烂,因为我的前端本来就很差,将就下吧),大概功能如下:用户功能(添加.删除.修改),添加部门功能,任务管理功能(添加.删除.修改,详细).项目管 ...

  2. query通用开源框架

    Jquery通用开源框架之[ejq.js] 简介 ejq是一款非常小巧的JS工具库,未压缩才50K,在jquery的基础上对jquery缺失部分作了很好的弥补作用. 优点: 1.具有内置的模板解析引擎 ...

  3. BZOJ 3572 世界树(虚树)

    http://www.lydsy.com/JudgeOnline/problem.php?id=3572 思路:建立虚树,然后可以发现,每条边不是同归属于一端,那就是切开,一半给上面,一半给下面. # ...

  4. Linux系统编程(19)——正则表达式在sed和awk中的使用

    sed意为流编辑器(Stream Editor),在Shell脚本和Makefile中作为过滤器使用非常普遍,也就是把前一个程序的输出引入sed的输入,经过一系列编辑命令转换为另一种格式输出.sed和 ...

  5. C语言的本质(37)——makefile之隐含规则和模式规则

    Makefile有很多灵活的写法,可以写得更简洁,同时减少出错的可能.本节我们来看看这样一个例子还有哪些改进的余地. 一个目标依赖的所有条件不一定非得写在一条规则中,也可以拆开写,例如: main.o ...

  6. UESTC_Palindromic String 2015 UESTC Training for Search Algorithm & String<Problem M>

    M - Palindromic String Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 128000/128000KB (Java ...

  7. 理解*ptr++

    这是C语言中指针的基本用法之一,我们先来看一个小例子.下面是代码: int main(void) { char *p = "Hello"; while(*p++) printf(& ...

  8. MediaPlayer本地播放流程解析(一)

    应用场景: MediaPlayer mediaPlayer = new MediaPlayer(); mediaPlayer.setOnCompletionListener(new OnComplet ...

  9. 在opensips中记录通话记录

    1.为acc表增加额外的字段记录主叫被叫进入mysql,选取opensips的数据库ALTER TABLE acc ADD from_uri VARCHAR(64) DEFAULT '' NOT NU ...

  10. Redis 命令参考

    Redis 命令参考 http://redis.readthedocs.org/en/latest/index.html