请问SQL中视图与查询的区别

请问SQL中视图与查询的区别,第1张

SQL中视图与查询的区别为:功能不同、归属不同、数据来源不同。

一、功能不同

1、视图:视图可以更新字段内容并返回原表。

2、查询:查询文件中的记录数据不能修改。

二、归属不同

1、视图:视图不是一个独立的文件,它保存在数据库中。

2、查询:查询是一个独立的文件,不属于数据库。

三、数据来源不同

1、视图:视图的数据来源可以是本地数据源,也可以是远程数据源。

2、查询:查询的数据来源只有本地数据源,不能访问远程数据源。

■关系数据库factsandinformation

关系数据库是建立在集合代数基础上,应用数学方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。

关系模型由关系数据结构、关系 *** 作集合、关系完整性约束三部分组成。

全关系系统十二准则

全关系系统应该完全支持关系模型的所有特征。关系模型的奠基人EFCodd具体地给出了全关系系统应遵循的基本准则。

;''准则0'':一个关系形的关系数据库系统必须能完全通过它的关系能力来管理数据库。

;''准则1''信息准则:关系数据库系统的所有信息都应该在逻辑一级上用表中的值这一种方法显式的表示。

;''准则2''保证访问准则:依靠表名、主码和列名的组合,保证能以逻辑方式访问关系数据库中的每个数据项。

;''准则3''空值的系统化处理:全关系的关系数据库系统支持空值的概念,并用系统化的方法处理空值。

;''准则4''基于关系模型的动态的联机数据字典:数据库的描述在逻辑级上和普通数据采用同样的表述方式。

;''准则5''统一的数据子语言:

一个关系数据库系统可以具有几种语言和多种终端访问方式,但必须有一种语言,它的语句可以表示为严格语法规定的字符串,并能全面的支持各种规则。

;''准则6''视图更新准则:所有理论上可更新的视图也应该允许由系统更新。

;''准则7''高级的插入、修改和删除 *** 作:系统应该对各种 *** 作进行查询优化。

;''准则8''数据的物理独立性:无论数据库的数据在存储表示或存取方法上作任何变化,应用程序和终端活动都保持逻辑上的不变性。

;''准则9''数据逻辑独立性:当对基本关系进行理论上信息不受损害的任何改变时,应用程序和终端活动都保持逻辑上的不变性。

;''准则10''数据完整的独立性:关系数据库的完整性约束条件必须是用数据库语言定义并存储在数据字典中的。

;''准则11''分布独立性:关系数据库系统在引入分布数据或数据重新分布时保持逻辑不变。

;''准则12''无破坏准则:如果一个关系数据库系统具有一个低级语言,那么这个低级语言不能违背或绕过完整性准则。

■实时数据库是数据库系统发展的一个分支,它适用于处理不断更新的快速变化的数据及具有时间限制的事务处理。实时数据库技术是实时系统和数据库技术相结合的产物,研究人员希望利用数据库技术来解决实时系统中的数据管理问题,同时利用实时技术为实时数据库提供时间驱动调度和资源分配算法。然而,实时数据库并非是两者在概念、结构和方法上的简单集成。需要针对不同的应用需求和应用特点,对实时数据模型、实时事务调度与资源分配策略、实时数据查询语言、实时数据通信等大量问题作深入的理论研究。实时数据库系统的主要研究内容包括:

实时数据库模型

实时事务调度:包括并发控制、冲突解决、死锁等内容

容错性与错误恢复

访问准入控制

内存组织与管理

I/O与磁盘调度

主内存数据库系统

不精确计算问题

放松的可串行化问题

实时SQL

实时事务的可预测性

研究现状与发展实时数据库系统最早出现在1988年3月的ACMSIGMODRecord的一期专刊中。随后,一个成熟的研究群体逐渐出现,这标志着实时领域与数据库领域的融合,标志着实时数据库这个新兴研究领域的确立。此后,出现了大批有关实时数据库方面的论文和原型系统。人机交互技术与智能信息处理实验室实时数据库小组一直致力于实时系统、实时智能、实时数据库系统及相关技术的研究与开发,并取得了一定的成绩。

什么是SAPHANA

SAPHANA是一个软硬件结合体,提供高性能的数据查询功能,用户可以直接对大量实时业务数据进行查询和分析,而不需要对业务数据进行建模、聚合等

saphana的作用

HANA不是一个数据仓库,而是一个平台,在这个平台之上用户可以构建数据仓库或集市、报表和仪表盘等。

HANA能做的,首先是作为内存数据库,提供数据插入、修改和高效的查询功能。

其次,作为一个平台,在HANA之上,BO报表系统可以提供更好的用户体验_用户几乎不需要等待数据返回。

用户可以使用HANA的建模工具直接访问ECC或其它数据源,避开BW。但也可以在HANA之上建BW,把BW那些性能问题交给HANA解决。

SAPHANA提供多用途的内存应用设备,企业可以利用它即时掌握业务运营情况,从而对所有可用的数据进行分析,并对快速变化的业务环境做出迅速响应。

通过SAPHANA,企业可以在业务运作期间基于海量实时详细信息分析业务运营情况。企业可以探索和分析来源于所有数据源的全部交易数据和分析数据。运营数据在产生时由内存获取,并通过灵活的视图迅速将分析信息呈现给用户。外部数据可轻松的被添加至分析模型,与整个企业的数据进行整合

通过SAPHANA可直接访问运营数据,而不影响SAPERP和其他运营系统的性能。企业可以近乎实时地将主要交易表同步到内存中,以便在分析或查找时能够轻松对这些表进行访问。一旦数据可通过内存访问,各个部门就可以从预订单据、销售线索、服务要求等大量列表中查找单个行项目,而不会对运营系统造成任何影响。这种高效的建模流程支持提供明细行项目的直接访问模型,以及支持更为复杂的分析流程的分析模型。

SAPHANA提供从概念到分析的高效工作流程。该工作流涵盖整个流程,从识别相关运营数据(将原始数据转化为相关信息)开始,到在模型中生成按语义分组的信息,最后是发布完成的模型。SAPHANA与传统分析模型的主要区别在于摒弃了任何物质化的东西,即,所有模型都是完全虚拟的,均基于基本的具体运营数据计算结果。这样,模型就能够被方便的修改。

SAPHANA可以访问任何数据。当企业需要非SAP应用程序中的运营数据,或想在现有分析模型的基础上进行扩展时,任何数据源均可作为SAPHANA的数据基础。使用SAP数据服务组件,可以将非SAP运营数据加载到SAPHANA内存中,这样,企业就可以通过极其精简的流程创建一个特定业务情景的完整视图。

SAPHANA添加了易用的建模经验来进一步提高业务用户的自主性。视图遵循语义规则,将原始运营数据转化成可以理解的信息,据此,业务用户可以在基于Web的建模环境中自主地创建新分析模型。

SAP的商务智能分析工具可以直接使用SAPHANA内存数据,使业务用户能够全面利用其所有高性能应用程序的洞察和分析功能。但是,如果用户希望使用Excel或其他工具和应用程序进行数据分析,那么他们可以通过MDX、SQL等标准接口连接到SAPHANA。

SAPHANA为现有应用程序、运营系统或其他业务应用程序提供标准接口。这意味着SAPHANA不会因为连接到现有数据源而打乱现有系统架构,并轻松利用现有BI客户端。作为一款完备的实时分析解决方案,SAPHANA可以帮助企业尽快获得收益。

语法

: CREATE VIEW <视图名> [(列名1,列名2,……)]

[WITH ENCRYPTION]

AS

SELECT_STATEMENT

[WITH CHECK OPTION]----就是这个属性决定该视图能否修改数据,真实作用是修改视图的数据最终是在产生视图的基表中,继而表现在视图上。

功能:创建视图

例1:创建一个成绩单视图

CREATE VIEW dbovw_cjd(name, cid, result)

AS

SELECT name, reportcid, reportresult FROM student JOIN report

ON studentsid=reportsid

例2:显示成绩单视图

Select from vw_cjd

修改视图与删除视图

1 修改视图

语法:ALTER VIEW <视图名> [(列名1,列名2,……)] [WITH ENCRYPTION]

AS

SELECT statement [WITH CHECK OPTION]

例:修改视图vw_cjd

ALTER VIEW vw_cjd

AS

Select name, reportcid, reportresult, address From student join report

ON studentsid=reportsid

查看Select from vw_cjd

2 删除视图

语法:DROP VIEW <视图名>

例:删除视图vw_cjd

DROP VIEW vw_cjd

视图定义信息

一、视图定义信息

1.在企业管理体制器中查看

2.查询视图Information_schemaviews

3.查询系统表syscomments

4.使用命令 sp_helptext 对象名

二、隐藏视图定义

with encryption

通过视图修改数据

¨ 只能影响一个基表;

¨ 如果指定WITH CHECK OPTION选项,那么要验证所修改的数据。

视图是逻辑层面上的

就像你是1 班的 而你又是学生会的 那么 学生会这边就不必再为你而新建信息 它只要求能够指向你所在班级就可以了 也就是说你还是你 只不过看的角度不同了

它与临时表没有什么联系

临时表 故名思义 ,它是临时的 你与数据连接后,也就是产生了一个Session

这个时候,我们可以创建一张临时性质的表 它与真正的表没有什么区别

,但是这张表就不会存储到正常的表空间中去,而是被临时放置而已等到你断开数据库后,所谓的临时表的一切信息都会被丢弃

形象一点,就像你打开了电脑,登陆了一个用户,存在硬盘上的东西是永久的(相当于表),而内存中的数据是临时的(相当于临时表),一旦你重启了那么内存中的数据都会被丢掉而硬盘上的数据依然还在

不同的数据库,对临时表的 *** 作在语法上会有一些不同

仅举一例:

declare @t1 table (

id int primary key,

name nvarchar(20),

tel nvarchar(20)

)

insert into @t1 values(1,'aa','123')

insert into @t1 values(2,'bb','234')

insert into @t1 values(3,'cc','567')

--select from @t1

请参考

1、简化应用程序。

视图做为数据库中的一种实体,实际上存在的只是它的脚本,而它的内容并不真正的单独存在一份。一般,可以对复杂的应用程序从功能角度进行分析,将可以与其它的应用程序共用的那一部分,分离出来。对这部分功能,视具体情况可做成不同的数据库实体(如过程),有些是可以做成视图的。这样,上层的应用程序就可以从视图中取数据了。还有,可以把对远地数据库的访问封装在视图中,使之对上层应用程序透明。2、可以对 UNION 后的记录集排序。

直接对以下语句的结果排序,是不可能的。 select aid id from a

union

select bid id from b;

所以把以上语句作成视图后,就可以了。设视图名为A_B:

select id from A_B order by id;3、可以实现一定的权限控制。

可以根据需要,对表中的一部分内容做一个视图,以供一定的角色使用。可以对表中的一部分记录做一个视图(纵向),也可以对一个表中的一部分字段做一个视图(横向),或二者兼而有之。--------------------------------------------------------------------

视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。

对其中所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。分布式查询也可用于定义使用多个异类源数据的视图。如果有几台不同的服务器分别存储组织中不同地区的数据,而您需要将这些服务器上相似结构的数据组合起来,这种方式就很有用。一、视图的作用 简单性。看到的就是需要的。视图不仅可以简化用户对数据的理解,也可以简化他们的 *** 作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的 *** 作每次指定全部的条件。 安全性。通过视图用户只能查询和修改他们所能见到的数据。数据库中的其它数据则既看不见也取不到。数据库授权命令可以使每个用户对数据库的检索限制到特定的数据库对象上,但不能授权到数据库特定行和特定的列上。通过视图,用户可以被限制在数据的不同子集上:使用权限可被限制在基表的行的子集上。

使用权限可被限制在基表的列的子集上。

使用权限可被限制在基表的行和列的子集上。

使用权限可被限制在多个基表的连接所限定的行上。

使用权限可被限制在基表中的数据的统计汇总上。

使用权限可被限制在另一视图的一个子集上,或是一些视图和基表合并后的子集上。 逻辑数据独立性。视图可帮助用户屏蔽真实表结构变化带来的影响。二、视图的优点 (1)视图能简化用户的 *** 作

(2)视图机制可以使用户以不同的方式查询同一数据

(3)视图对数据库重构提供了一定程度的逻辑独立性

(4)视图可以对机密的数据提供安全保护三、视图的安全性视图的安全性可以防止未授权用户查看特定的行或列,是用户只能看到表中特定行的方法如下: 1 在表中增加一个标志用户名的列;

2 建立视图,是用户只能看到标有自己用户名的行;

3 把视图授权给其他用户。四、逻辑数据独立性 视图可以使应用程序和数据库表在一定程度上独立。如果没有视图,应用一定是建立在表上的。有了视图之后,程序可以建立在视图之上,从而程序与数据库表被视图分割开来。视图可以在以下几个方面使程序与数据独立: 1 如果应用建立在数据库表上,当数据库表发生变化时,可以在表上建立视图,通过视图屏蔽表的变化,从而应用程序可以不动。

2 如果应用建立在数据库表上,当应用发生变化时,可以在表上建立视图,通过视图屏蔽应用的变化,从而使数据库表不动。

3 如果应用建立在视图上,当数据库表发生变化时,可以在表上修改视图,通过视图屏蔽表的变化,从而应用程序可以不动。

4 如果应用建立在视图上,当应用发生变化时,可以在表上修改视图,通过视图屏蔽应用的变化,从而数据库可以不动。五、视图的书写格式 CREATE VIEW <视图名>[(列名组)]

AS <子查询>

DROP VIEW <索引名> 注意:视图可以和基本表一样被查询,但是利用视图进行数据增,删,改 *** 作,会受到一定的限制。(1)由两个以上的基本表导出的视图

(2)视图的字段来自字段表达式函数

(3)视图定义中有嵌套查询

(4)在一个不允许更新的视图上定义的视图

Qt之界面数据存储与获取(userData)

向busybox中添加自己的applet

oracle内存分析

程序中实现两个DataTable的Left Join效果(修改了,网上第二个DataTable为空,所处的异常)

CompletionService 与 ExecutorService 获取任务执行结果时的区别

CompletionService 和ExecutorService的区别和用法

Java数据库开发

Python安装jpype调用java,安装jaydebeapi通过jdbc连接数据库

7 进行的数据补全和增强(随机亮度,随机饱和度,随机翻转) Imageopen(进行的读入) 2ImageEnhanceBrightness(亮度变化) 3ImageEnhanceContrast(饱和度变化) 4enhance_imagetranspose(随机翻转) 5enhance_imagesave(进行保存)

数据挖掘 Apriori Algorithm python实现

Thinkphp50 控制器向视图view赋值

oracle 查询 函数练习

Hibernate的批量查询——原生sql查询

二十二:视图之add_url_rule和approute

SQL语句创建数据库以及一些查询练习

Elasticsearch 使用:创建、插入、查询、更新、删除

模糊查询中Like的使用

mvc4中使用部分视图局部刷新实例

oracle(8)视图和查询数据库对象方法

leetcode877

bootstrap-table表格导出

servlet模板

[leetcode-609-Find Duplicate File in System]

SpringBoot 整合Mybatis *** 作数据库

python基础教程总结12——数据库

day37 02-Hibernate二级缓存:二级缓存的散装数据

Mysql进入数据库

WPF 视图导航

图形学思考 - 聊聊透视图投射矩阵perspective projective matrix

sql日期查询

ABAP-Eclipse ADT中创建ABAP CDS视图

技术小哥用手机实现激光笔,女友直呼:太酷了!

结婚登记人数创36年新低,结婚率下降原因是?

广告合作

发信联系

oracle(8)视图和查询数据库对象方法

扫码查看

视图

学习APP开发,接单挣钱!

视图 view

视图是数据库的对象之一。 视图也叫做虚表,既虚拟表,本质是对应一条select 语句,

select语句的结果集赋予一个名字就是视图的名字。

作用:

1可以简化复杂的查询

2可以限制数据的访问,对基表的其他数据起到安全和保密的作用。

创建一个 表 create table emp(

empno number(6), name char(10), id number(4), deptno number(10), job varchar2(10) );

创建视图:create view emp_v as

;创建视图时,create对应的表叫做基表。 查询视图select from emp_v ;根据查询所的方式可分为三种视图:1简单视图:根据单表建立的,且不包含任何函数运算,表达式和分组,既单表的子集。2复杂视图:根据单表建立,包含有单行函数/表达式/分组的视图。3连接视图:基于多表建立的视图。删除视图drop view emp_v;

简单视图可以进行DML *** 作,但是复杂视图不允许DML *** 作。

修改视图:视图的结构取决于对应的子查询,所以修改视图即替换对应

的子查询。REPLACE

CREATE OR REPLACE VIEW V_EMP_J

AS

SELECT EMPNO,ENAME,SAL

FROM EMP_XIAOJIE;

SELECT FROM V_EMP_J;

对视图的不当DML *** 作会污染基表数据:

对简单视图进行DML *** 作后,视图对基表做对应的 *** 作,但是影响的数据对应视图来说

是不可见的,就是对基表数据的污染。

为了避免视图对基表产生数据的污染。我们可以对视图添加检查选项要求(检查约束)

使其对视图进行DML时 *** 作时检查视图时 *** 作后是否对 *** 作的数据可见,如果不可见

则不允许 *** 作。

简单视图可以进行DML *** 作,但是复杂视图不允许DML *** 作。

视图本身是不包含数据的,只是基表的逻辑映射,所以

对视图执行DML *** 作时,实际上 *** 作的是基表。

对视图进行DML *** 作,实际上是对基表进行DML *** 作,

如果不去约束,我们对视图不可视进行DML *** 作会对

基表的数据产生污染。

对视图进行DML *** 作基本原则:

简单视图可以进行DML *** 作,但是有以下情况除外,

基表中定义了非空列,但是简单视图对应的 SELECT

语句没有包含这个非空列,导致非空列对于视图不可视,

这时无法对视图进行 INSERT *** 作。

复杂视图不允许DML *** 作

DML *** 作不能违反基表的约束条件。

创建具有 CHECK OPTION 的约束视图。

CREATE OR REPLACE VIEW V_EMP_J

AS

SELECT EMPNO,ENAME,SAL

FROM EMP_XIAOJIE

WHERE SAL<3000

WITH CHECK OPTION; --添加约束后无法对基表进行数据污染。

SELECT FROM V_EMP_J;

创建具有 READ ONLY 约束的视图。

对简单进行DML *** 作是合法的但是不安全,如果没有在视图进行DML

*** 作的必要的话,要在建立视图时声明只读来避免这种情况,包含

基表数据不会被非法的修改。

无法对只读视图执行DML *** 作。

CREATE OR REPLACE VIEW V_EMP_J

AS

SELECT EMPNO,ENAME,SAL

FROM EMP_XIAOJIE

WHERE SAL<3000

WITH READ ONLY;--用来只读

数据字典:

数据字典是一系列的表,这些表的数据由数据库自行维护,记录清单清单信息。

1在数据字典 user_objects 中查询所有视图:

SELECT object_name FROM user_objects

where object_type='VIEW';--查找所有视图

view:视图 table:表 sequence:序列 index:索引

2在数据字典 USER_VIEWS 查询所有的指定视图:

3在数据字典 user_updatable_columns 中查询视图:

SELECT COLUMN_NAME,INSERTABLE,UPDATABLE,DELETABLE --看 *** 作权限

FROM USER_UPDATABLE_COLUMNS

WHERE TABLE_NAME='V_EMP_J';

以上就是关于请问SQL中视图与查询的区别全部的内容,包括:请问SQL中视图与查询的区别、数据库有哪些类、什么是saphanasaphana有什么用_SAPHANA等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9322756.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存