视图与临时表

PHPz
풀어 주다: 2019-02-26 17:31:30
원래의
1880명이 탐색했습니다.

今天上午闲来无事,突然想写写视图与临时表的作用,如下:

相关mysql视频教程推荐:《mysql教程

视图:

视图的定义:从一个或多个表(或视图)导出的表。

视图与表的不同之处:视图是一个虚表,即视图所对应的数据不进行实际存储,数据库只存储视图的定义,对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的基本表。

上面小段其实已经讲出了视图的本质特征。

视图主要用于系统的安全、查询和效率,在安全方面,举个例子:例如,你只想让用户看到某一表的某几个字段,有些字段想不让用户看见,这是用视图解决会很好,当然在select时也可以实现。第在查询方面,对于比较复杂的查询,可以大大减少频繁编写sql语句的烦恼。同时,在效率上,数据分布在多台服务器上,视图一定会带来效率上的好处。

临时表:

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

例如,如果创建了 employees 表,则任何在数据库中有使用该表的安全权限的用户都可以使用该表,除非已将其删除。如果数据库会话创建了本地临时表 #employees,则仅会话可以使用该表,会话断开连接后就将该表删除。如果创建了 ##employees 全局临时表,则数据库中的任何用户均可使用该表。如果该表在您创建后没有其他用户使用,则当您断开连接时该表删除。如果您创建该表后另一个用户在使用该表,则 SQL Server 将在您断开连接并且所有其他会话不再使用该表时将其删除。
临时表主要用来提高效率。

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿