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的操作就是对这张表的操作,哪怕是多个用户也是一张表。引擎会在合适的时间内
更新这张表、
SQL Sever MYSQL 视图实现的 2 种方式的更多相关文章
- mysql实现分页的几种方式
mysql实现分页的几种方式: 第一种:使用框架自带的pageable来进行分页 package com.cellstrain.icell.repository.repositoryImpl; imp ...
- Mysql查看版本号的五种方式介绍
Mysql查看版本号的五种方式介绍 作者: 字体:[增加 减小] 类型:转载 时间:2013-05-03 一.使用命令行模式进入mysql会看到最开始的提示符;二.命令行中使用status可以看到 ...
- SQL Server 2008 数据库同步的两种方式 (发布、订阅)
参考转载: SQL Server 2008 数据库同步的两种方式 (发布.订阅) 使用Sqlserver事务发布实现数据同步
- mysql级联更新的两种方式:触发器更新和外键
1.mysql级联更新有两种方式:触发器更新和外键更新. 2.触发器更新和外键更新的目的都是为了保证数据完整性. 我们通常有这样的需求:删除表Table 1中记录,需要同时删除其它表中与Table 1 ...
- SQL优化 MySQL版 - 索引分类、创建方式、删除索引、查看索引、SQL性能问题
SQL优化 MySQL版 - 索引分类.创建方式.删除索引.查看索引.SQL性能问题 作者 Stanley 罗昊 [转载请注明出处和署名,谢谢!] 索引分类 单值索引 单的意思就是单列的值,比如说有 ...
- [Mysql]查看版本号的五种方式
[Mysql]查看版本号的五种方式 目录(?)[+] 查看版本信息 #1 使用命令行模式进入mysql会看到最开始的提示符 Your MySQL connection id is 3Serve ...
- MySQL查看版本号的五种方式介绍1111111
MySQL查看版本号的五种方式介绍 1 命令行模式登录MySQL [root@localhost ~]# mysql -uroot -p Enter password: Welcome to the ...
- mysql复制表的两种方式
mysql复制表的两种方式. 第一.只复制表结构到新表 create table 新表 select * from 旧表 where 1=2 或者 create table 新表 like 旧表 第二 ...
- 利用"SQL"语句自动生成序号的两种方式
1.首先,我们来介绍第一种方式: ◆查询的SQL语句如下: select row_number() over (order by name) as rowid, sysobjects.[name] f ...
随机推荐
- python操作redis-过期时间
#!/usr/bin/python #!coding:utf-8 import time import redis if __name__ == "__main__": try: ...
- stopWeblogic时提示错误以及无法关闭服务
执行: y@y:~/oracle/middleware/user_projects/domains/yshy_domain/bin$ ./stopWebLogic.sh 错误信息如下: Stoppin ...
- javascript之Boolean
一.new Boolean(value); //构造函数 Boolean(value); //转换函数 0,NaN,null,"",undefined都会转成false,其他都会返 ...
- cf475B Strongly Connected City
B. Strongly Connected City time limit per test 2 seconds memory limit per test 256 megabytes input s ...
- UESTC_秋实大哥の恋爱物语 2015 UESTC Training for Search Algorithm & String<Problem K>
K - 秋实大哥の恋爱物语 Time Limit: 5000/2000MS (Java/Others) Memory Limit: 32000/32000KB (Java/Others) Su ...
- html&CSS初学
<link href="https://fonts.gdgdocs.org/css?family=Lobster" rel="stylesheet" ty ...
- linux内存操作----kernel 3.5.X copy_from_user()和copy_to_user()
前面的一篇文章中简单的描写叙述了一下内存映射的内容,http://blog.csdn.net/codectq/article/details/25658813,这篇文章作为用户把内存规划好之后,在用户 ...
- C程序设计语言(K&R)笔记
1.表达式中float类型的操作数不会自动转换为double类型.一般来说,数学函数(如math.h)使用双精度类型的变量.使用float类型主要是为了在使用较大数组时节省存储空间,有时也为了节省机器 ...
- 在Red Hat Enterprise Linux 5 64-bit安装oracle11g r2
网上这种文档一搜就一堆,没别的目的,刚接触oracle为了加深理解记忆.只要是跟我的版本一样操作系统和oracle软件,按照步骤肯定可以成功安装 在虚拟机上安装Red Hat Enterprise L ...
- quick-x 2.2.5 DragonBones 某些fla导出使用后player卡死
1 2 3 4 5 6 7 8 9 10 11 --test 龙骨 self._db = dragonbones.new({ skeleton="game ...