视图是由若干基本表或其他视图构成的表的定义.
用户可以用SQL语句对视图和基本表进行查询等操作。在用户角度来看,视图和基本表是一样的,没有区别,都是关系(表格).
在SQL中,视图是外模式一级数据结构的基本单位。它是从一个或几个基本表中导出的表,是从现有基本表中抽取若干子集组成用户的“专用表”。这种构造方式必须使用SQL中的SELECT语句来实现。在定义一个视图时,只是把其定义存放在系统的数据中,而并不直接存储视图对应的数据,直到用户使用视图时才去求得对应的数据.
⑵ 视图、游标是什么
视图是一种虚拟的表,具有和物理表相同的功能。可以对视图进行增,改,查,操作,视图通常是有一个表或者多个表的行或列的子集。对视图的修改不影响基本表。它使得我们获取数据更容易,相比多表查询。视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。
游标:是对查询出来的结果集作为一个单元来有效的处理。游标可以定在该单元中的特定行,从结果集的当前行检索一行或多行。可以对结果集当前行做修改。一般不使用游标,但是需要逐条处理数据的时候,游标显得十分重要。
⑶ SQL 中视图的定义
整理了下他们的区别和联系,或许还不是那么详细和完整,希望能对你有点帮助!
区别:1、视图是已经编译好的sql语句。而表不是
2、视图没有实际的物理记录。而表有。
3、表是内容,视图是窗口
4、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时四对它进行修改,但视图只能有创建的语句来修改
5、表是内模式,试图是外模式
6、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些sql语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。
7、表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。
8、视图的建立和删除只影响视图本身,不影响对应的基本表。
联系:视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系
⑷ 请问SQL中视图与查询的区别
SQL中视图与查询的区别为:功能不同、归属不同、数据来源不同。
一、功能不同
1、视图:视图可以更新字段内容并返回原表。
2、查询:查询文件中的记录数据不能修改。
二、归属不同
1、视图:视图不是一个独立的文件,它保存在数据库中。
2、查询:查询是一个独立的文件,不属于数据库。
三、数据来源不同
1、视图:视图的数据来源可以是本地数据源,也可以是远程数据源。
2、查询:查询的数据来源只有本地数据源,不能访问远程数据源。
⑸ sql查询和视图查询区别,时间
一、方式不同
1、sql查询:不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统。
2、视图查询:视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表。
二、特点不同
1、sql查询:相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。
2、视图查询:视图是从一个特定的角度来查看数据库中的数据。从数据库系统内部来看,一个视图是由SELECT语句组成的查询定义的虚拟表。
三、功能不同
1、sql查询:对基本表和视图的数据插入、删除和修改,特别是具有很强的数据查询功能。
2、视图查询:视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。分布式查询也可用于定义使用多个异类源数据的视图。
⑹ 数据库中表与视图有什么联系与区别
区别
1、视图是已经编译好的sql语句,而表不是;
2、视图没有实际的物理记录,而表有;
3、表是内容,视图是窗口;
4、表占用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时对它进行修改,但视图只能用创建的语句来修改;
5、表是内模式,试图是外模式;
6、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合,从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构;
7、表属于全局模式中的表,是实表,视图属于局部模式的表,是虚表;
8、视图的建立和删除只影响视图本身,不影响对应的基本表;
9、不能对视图进行update或者insert into操作。
联系
1、视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在;
2、一个视图可以对应一个基本表,也可以对应多个基本表;
3、视图是基本表的抽象和在逻辑意义上建立的新关系。
总结:
视图是一个子查询,性能肯定会比直接查询要低(尽管sql内部有优化),所以使用视图时有一个必须要注意的,就是不要嵌套使用查询,尤其是复杂查询。
视图有什么用
1、当一个查询需要频频的作为子查询使用时,视图可以简化代码,直接调用而不是每次都去重复写这个东西。
2、系统的数据库管理员需要给他人提供一张表的某两列数据,而不希望他可以看到其他任何数据,这时可以建一个只有这两列数据的视图,然后把视图公布给他。
性能损失解决方案
对视图的查询语句进行优化。
通常来说直接查询和查询视图是没有什么区别的(sql 本身会进行优化),除非是视图嵌套了视图,或者子查询很复杂要计算。
特别说明:
每次SELECT视图的时候,视图都会重新计算创建它的规则(sql算法),如果算法复杂,数据量大,就会比较慢,那样每次就很慢了。
而且,表的索引对于视图view来说是无效的,它是全表扫描的。
⑺ 在sql server中,索引和视图的区别是
视图:
就是一张虚拟表,视图就是一个子查询!实际当中的数据依然存在实际的表里面,只不过取的时候是根据这个视图(也就是这个子查询)从实际当中的表里面取出来.
优点:简化查询
缺点:你建视图建多了,如果这表结构突然改了,那么你视图也要跟着改!增加了你维护的支出!所以建的view越多,维护起来越麻烦.
除了简化查询以外,视图还有其他功能:
比如你有一张表,里面有很多数据,这些数据有些是你想给别人看,但是有些是秘密不想给人看,那么你就可以建立视图,然后把视图的权限给他,这样就保护了自己的私有数据。
索引:
索引使数据库程序无须对整个表进行扫描,就可以在其中找到所需的数据。当进行数据检索时,系统先搜索索引,从中找到数据的指针,再直接通过指针从表中取数据!
优点:查询快
缺点:
1)占用存储空间
2)在表中执行insert、delete、update操作时,将有额外的操作来维护索引
3)过多的索引起反作用
注意:
1)如果给表中某字段加了 主键约束 或是 唯一约束 ,这时会自动帮你 建立对应这个字段的 唯一索引
2)索引不要轻易的建立
差不多了... ...