视图

视图是由从数据库的基本表中选出来的数据组成的逻辑窗口,它与基本表不同的是,视图是一个虚表。数据库中只存放视图的定义,而不存放视图包含的数据,这些数据仍存放在原来的基表中。所以基表中的数据如果发生改变,从视图中查询出的数据也随之改变。

视图是一个虚表,他是通过执行SQL查询所产生的。视图以select命名存储于数据字典当中。每当SQL查询包含有视图名称的时候,数据库管理系统会执行在视图定义当中所包含的查询,以建立其虚拟结果表。该结果表可以当做查询其余部分的源表使用。

视图可以是建立在一个或多个表上,也可以建立在视图上,但是不管怎么样对视图数据的操作最终都会转换为对基本表的操作,因为视图是一个虚表,数据实际上保存在基本表中

临时表

临时表与永久表相似,但临时表存储在 tempdb 中,当不再使用时会自动删除。

临时表有两种类型:本地和全局。它们在名称、可见性以及可用性上有区别。本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 SQL Server 实例断开连接时被删除。全局临时表的名称以两个数字符号 (##) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除。

临时表是建立在系统临时文件夹中的表,如果使用得当,完全可以像普通表一样进行各种操作,在VFP退出时自动被释放。

临时表是一种并不存储在数据库当中的基表。与之相反的是,临时表只存在于创建该临时表的数据库会话被激活的情况下。

临时表存储在数据库会话中,不在数据库中,当使用show tables 时没有显示,但是可以查询,当关闭数据库(quit,exit)然后在打开在去数据库中查询的时候就不存在了。

视图和临时表的区别

1、视图只存在于单个查询当中,每次使用该视图名,其虚拟表就会根据现有的数据重新被创建。 2、临时表存在于它被创建的整个数据库会话过程中。 3、视图自动使用其所定义的查询检索出来的数据进行填充。 4、必须使用SQLINSERT命令来向临时表添加数据。 5、只有那些符合视图可更新能力标准的视图才可用于数据修改。当使用视图进行更新时,该更新会永久被传递至底层基表上。 6、由于临时表都是基表,因此所有的临时表都是可更新的。不过,这些更新对于这些表来说是临时性的。 7、由于视图的内容是在该视图每次被使用的时候才生成,因此视图当中的数据几乎每次都是最新的。 8、临时表当中的数据所反应的是数据库在该表被装载进数据库时的状态。如果临时表所装载的源表中的数据在临时表检索这些数据之后发生了改变,那么临时表当中的内容有可能与数据库当中的其他部分的数据脱离同步状态。

优缺点

1、由于视图的内容是在该视图每次被使用的时候才生成,所以数据和数据库中的数据是同步的,但是在每次查询的时候都要建立视图表结构,所以比较浪费时间。 2、临时表仅需创建一次,所以相比视图每次都创建视图结构,节省了大量时间,但是临时表的数据在数据源发生改变是没有进行更新的话,就会出现数据不同步现象。 3、简化数据查询语句——定义视图可以将表与表之间的复杂的连接操作和搜索条件对用户影藏起来,用户只需简单的对一个视图进行查询即可。 4、使用户能从多角度看待同一数据。 5、提高了数据的安全性———在建立视图的时候可以吧敏感的数据影藏起来,而吧需要的数据暴露给客户这样的话比较安全。 6、提供了一定程度的逻辑独立性——数据库中是三级模式两级映射,三级模式是 外模式、模式、内模式而这里的视图就是外模式,这样就提供了数据的逻辑独立性。

什么时候使用视图呢?

应用场景1:保密工作,比如有一个员工工资表,如果你只希望财务看到员工工资这个字段,而其他人不能看到工资字段,那就用一个视图,把工资这个敏感字段过滤掉

应用场景2:有一个查询语句非常复杂,大概有100行这么多,有时还想把这个巨大无比的select语句和其他表关联起来得到结果,写太多很麻烦,可以用一个视图来代替这100行的select语句,充当一个变量角色

什么时候用临时表呢?

应用场景1:你在短期内有很多DML操作,比如京东淘宝亚马逊的购物车表,把东西放购物车(insert),变更数量(update),删除商品(delete),一旦结算金钱后,这些数据就要清掉,这时需要用临时表

应用场景2:在导出数据时,你可能不想导完整的数据库,或者表,你可能只想要导出符合某些条件的数据,那么你可以创建临时表,把select语句插入到临时表,接着导出这个临时表,导完以后通过结束session或者事务的方式,让这些没用的数据自动清理掉

应用场景3:你在写存储过程时,有很多的连接,比如你需要连接A,B,C,D,E,F,G,H那么多张表,才能得到你的结果表,同时做连接的消耗太大,你可以先A,B,C连接的结果,放在临时表,接着再把这张临时表,跟D,E,F连接,作为新的结果放在临时表,接着再把临时表与G,H连接,最后得到临时表数据,一次插入到结果表(永久表)。

二者区别:

空间分配:物理空间的分配不一样,视图不分配空间,   临时表会分配空间

虚实:视图是一条预编译的SQL语句,并不保存实际数据,而临时表是保存在tempdb中的实际的表。即视图是一个快照,是一个虚表,而临时表是客观存在的表类型对象。它们的结构一个是表、一个快照。可以把视图想象成联合表的快捷方式。

mysql视图和临时表的区别相关推荐

  1. mysql中视图和表的区别及联系_MySQL中Update、select联用操作单表、多表,及视图与临时表的区别...

    一.MySQL中使用从表A中取出数据来更新表B的内容 例如:要update表data中的一些列属性,但是修改属性的内容来源是来自表chanpin.SQL语言中不要显示的出现select关键字 upda ...

  2. python 导出mysql 视图_【Python基础】mysql数据库视图是什么

    什么是视图 ( view ) ? 视图,即虚拟表,通过底层接口封装的 SQL 语句查询到的内容作为虚拟表中的数据,因此视图中的记录来自数据表,它本身不存储数据. 视图可以连接一个或多个数据表的部分字段 ...

  3. MySQL中索引与视图的用法与区别详解

    索引与视图是我们在日常使用mysql必不可少的一部分,最近在学习中看到一本书中关于这方法写的不错,所以这篇文章主要给大家介绍了关于MySQL中索引与视图的使用与区别的相关资料,需要的朋友可以参考借鉴, ...

  4. MySQL中视图与表的区别

    1.MySQL中视图和表的区别以及联系 (1)视图是已经编译好的SQL语句,是基于SQL语句的结果集的可视化的表,而表不是. (2)视图没有实际的物理记录,而表有. (3)表是内存,视图是窗口. (4 ...

  5. mysql视图和主表关系_MySQL-视图和基本表的关系与区别

    1.视图是数据库数据的特定子集.可以禁止所有用户访问数据库表,而要求用户只能通过视图操作数据,这种方法可以保护用户和应用程序不受某些数据库修改的影响. 2.视图是抽象的,他在使用时,从表里提取出数据, ...

  6. mysql中视图和表的区别及联系,mysql 中视图和表的区别以及联系是什么?

    表是内容,视图是窗口.视图是已经编译好的sql语句,是基于sql语句的结果集的可视化的表,而表不是. 2)实与虚 表属于全局模式中的表,是实表:视图属于局部模式的表,是虚表. 3)是否存在物理记录 视 ...

  7. SQL Server 和 MySql 语法和关键字的区别

    (1)    MySQL的ifnull()函数对应sql的isnull()函数; (2)    mysql的存储过程中变量的定义去掉@; (3)    mysql的每句结束要用";" ...

  8. mysql视图实现的_mysql视图是什么?怎么实现?

    mysql视图是什么?怎么实现? 发布时间:2020-05-21 18:00:24 来源:亿速云 阅读:152 作者:鸽子 视图本身是一张虚拟表,不存放任何数据.在使用SQL语句访问视图的时候,获取的 ...

  9. mysql视图改造实体表_数据库视图改了对基表

    数据库必知词汇:数据库视图 视图是从一个或几个基本表(或视图)中导出的虚拟的表.在系统的数据字典中仅存放了视图的定义,不存放视图对应的数据.视图与表(有时为与视图区别,也称表为基本表--Base Ta ...

最新文章

  1. 基于Python的OpenCV轮廓检测聚类
  2. Hover States - 有趣的用户界面及交互设计
  3. hdu1978 简单记忆化搜索
  4. vue-cli 搭建vue项目
  5. 详解Java多线程编程中LockSupport类的线程阻塞用法
  6. 【渝粤教育】广东开放大学 电路分析基础 形成性考核 (59)
  7. python怎么模拟浏览器交互_python+webdriver 模拟用户交互工具
  8. 智能门锁半夜离奇开门吓坏用户 官方回应:只是一场误解
  9. awk -f 分隔符 命令_Linux awk命令详解(详解版)
  10. SQL Prompt 快捷键
  11. 愚人节的礼物 栈
  12. win10照片查看器不能点下一张的方法
  13. 计算机维护费入什么会计科目,​系统维护费记入什么会计科目
  14. 计算机网络 ping中ttl,ping命令TTL什么意思 ping值ttl多少算正常
  15. 伪漫迷用数据假装看了一遍《复联4》
  16. 计算机病毒的关键技术,计算机病毒实验系统关键技术研究与实现
  17. MySQL 关键字模糊匹配按照匹配度排序
  18. IDE for C++
  19. 浅谈游戏业务遭遇攻击的防护措施
  20. 技术分享 | 《云原生下的IAST落地实践》

热门文章

  1. 静态类static和普通类
  2. 为什么能用域名访问斗鱼、却不能用ip访问
  3. 屏幕之间的空白:跨屏时代即将到来
  4. Vue监听页面元素高度变化
  5. 一次可编程的非易失性存储器(OTP NVM)工作原理、eFuse模块解析
  6. 关于WiFiBT模组的EFuse说明
  7. python爬爬爬之单网页html页面爬取
  8. html静态页面引入公共html页面
  9. 【Simulator IOS虚拟机】IOS虚拟机设置中文输入
  10. java中自动刷新界面_自动刷新页面