数据库系统中,视图和表是什么关系?
联系:视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系
区别:1、视图是已经编译好的sql语句。而表不是
2、视图没有实际的物理记录。而表有。
3、表是内容,视图是窗口
4、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时四对它进行修改,但视图只能有创建的语句来修改
5、表是内模式,视图是外模式
6、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。
7、表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。
8、视图的建立和删除只影响视图本身,不影响对应的基本表。
数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员也通过dbms进行数据库的维护工作。它可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。大部分DBMS提供数据定义语言DDL(Data Definition Language)和数据操作语言DML(Data Manipulation Language),供用户定义数据库的模式结构与权限约束,实现对数据的追加、删除等操作。
数据库管理系统是数据库系统的核心,是管理数据库的软件。数据库管理系统就是实现把用户意义下抽象的逻辑数据处理,转换成为计算机中具体的物理数据处理的软件。有了数据库管理系统,用户就可以在抽象意义下处理数据,而不必顾及这些数据在计算机中的布局和物理位置。
1.数据定义:DBMS提供数据定义语言DDL(Data Definition Language),供用户定义数据库的三级模式结构、两级映像以及完整性约束和保密限制等约束。DDL主要用于建立、修改数据库的库结构。DDL所描述的库结构仅仅给出了数据库的框架,数据库的框架信息被存放在数据字典(Data Dictionary)中。
2.数据操作:DBMS提供数据操作语言DML(Data Manipulation Language),供用户实现对数据的追加、删除、更新、查询等操作。
3.数据库的运行管理:数据库的运行管理功能是DBMS的运行控制、管理功能,包括多用户环境下的并发控制、安全性检查和存取限制控制、完整性检查和执行、运行日志的组织管理、事务的管理和自动恢复,即保证事务的原子性。这些功能保证了数据库系统的正常运行。
4.数据组织、存储与管理:DBMS要分类组织、存储和管理各种数据,包括数据字典、用户数据、存取路径等,需确定以何种文件结构和存取方式在存储级上组织这些数据,如何实现数据之间的联系。数据组织和存储的基本目标是提高存储空间利用率,选择合适的存取方法提高存取效率。
5.数据库的保护:数据库中的数据是信息社会的战略资源,所以数据的保护至关重要。DBMS对数据库的保护通过4个方面来实现:数据库的恢复、数据库的并发控制、数据库的完整性控制、数据库安全性控制。DBMS的其他保护功能还有系统缓冲区的管理以及数据存储的某些自适应调节机制等。
6.数据库的维护:这一部分包括数据库的数据载入、转换、转储、数据库的重组合重构以及性能监控等功能,这些功能分别由各个使用程序来完成。
7.通信:DBMS具有与操作系统的联机处理、分时系统及远程作业输入的相关接口,负责处理数据的传送。对网络环境下的数据库系统,还应该包括DBMS与网络中其他软件系统的通信功能以及数据库之间的互操作功能。
再次并且写法也很简单。
最重要的是在服务器的存储和运行过程都几乎是一样的,二者都是以SQL语句集存储的,而且在运行之前都是经过编译的,也就是不用每次都重新编译,这样可以大大提高执行效率。
顾名思义,其区别一个重在“过程”、一个重在“图”。
也就是存储过程涉及很多的数据处理,整个是一个复杂的过程。它可以接收参数,相当于一个函数。主要目的是用来处理数据。
而视图是把现在有数据组合成新的形式展示出来,相当于一张虚拟的表,在运行时可以当作表Table来进行查询(增删改是不行的)。其目的是用来呈现数据。
事实上,两者其内部实现是基本一样的,提供者在开发这些对象时,是针对不同目的不同应用的。
我们在使用时,同一件事情,实现的方法可以是多样的,不是说只有那者行,其他的就不行。到底使用什么来实现呢?这要对实际情况进行具体分析,看怎样实现方便,怎样实现高效。
以下是一些资料:
存储过程
存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。总的来说,存储过程具有以下一些优点:
◆存储过程允许标准组件式编程
◆存储过程能够实现较快的执行速度
◆存储过程能够减少网络流量
◆存储过程可被作为一种安全机制来充分利用
基本语法如下:
完整的语法规则如下:
CREATE PROC [ EDURE ] procedure_name [ ; number ]
[ { @parameter data_type }
[ VARYING ] [ = default ] [ OUTPUT ]
] [ ,...n ]
[ WITH
{ RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ]
[ FOR REPLICATION ]
AS sql_statement [ ...n ]
SQL视图
视图可以被看成是虚拟表或存储查询。可通过视图访问的数据不作为独特的对象存储在数据库内。数据库内存储的是 SELECT 语句。SELECT 语句的结果集构成视图所返回的虚拟表。用户可以用引用表时所使用的方法,在 Transact-SQL 语句中通过引用视图名称来使用虚拟表。使用视图可以实现下列任一或所有功能:
将用户限定在表中的特定行上。
例如,只允许雇员看见工作跟踪表内记录其工作的行。
将用户限定在特定列上。
例如,对于那些不负责处理工资单的雇员,只允许他们看见雇员表中的姓名列、办公室列、工作电话列和部门列,而不能看见任何包含工资信息或个人信息的列。
将多个表中的列联接起来,使它们看起来象一个表。
聚合信息而非提供详细信息。
例如,显示一个列的和,或列的最大值和最小值。
通过定义 SELECT 语句以检索将在视图中显示的数据来创建视图。SELECT 语句引用的数据表称为视图的基表。在下例中,pubs 数据库中的 titleview 是一个视图,该视图选择三个基表中的数据来显示包含常用数据的虚拟表:
CREATE VIEW titleview
AS
SELECT title, au_ord, au_lname, price, ytd_sales, pub_id
FROM authors AS a
JOIN titleauthor AS ta ON (a.au_id = ta.au_id)
JOIN titles AS t ON (t.title_id = ta.title_id)
之后,可以用引用表时所使用的方法在语句中引用 titleview。
SELECT *
FROM titleview
一个视图可以引用另一个视图。例如,titleview 显示的信息对管理人员很有用,但公司通常只在季度或年度财务报表中才公布本年度截止到现在的财政数字。可以建立一个视图,在其中包含除 au_ord 和 ytd_sales 外的所有 titleview 列。使用这个新视图,客户可以获得已上市的书籍列表而不会看到财务信息:
CREATE VIEW Cust_titleview
AS
SELECT title, au_lname, price, pub_id
FROM titleview
视图可用于在多个数据库或 Microsoft? SQL Server? 2000 实例间对数据进行分区。分区视图可用于在整个服务器组内分布数据库处理。服务器组具有与服务器聚集相同的性能优点,并可用于支持最大的 Web 站点或公司数据中心的处理需求。原始表被细分为多个成员表,每个成员表包含原始表的行子集。每个成员表可放置在不同服务器的数据库中。每个服务器也可得到分区视图。分区视图使用 Transact-SQL UNION 运算符,将在所有成员表上选择的结果合并为单个结果集,该结果集的行为与整个原始表的复本完全一样。例如在三个服务器间进行表分区。在第一个服务器上定义如下的分区视图:
CREATE VIEW PartitionedView AS
SELECT *
FROM MyDatabase.dbo.PartitionTable1
UNION ALL
SELECT *
FROM Server2.MyDatabase.dbo.PartitionTable2
UNION ALL
SELECT *
FROM Server3.MyDatabase.dbo.PartitionTable3
在其它两个服务器上定义类似的分区视图。利用这三个视图,三个服务器上任何引用 PartitionedView 的 Transact-SQL 语句都将看到与原始表中相同的行为。似乎每个服务器上都存在原始表的复本一样,而实际上每个表只有一个成员表和分区视图。有关更多信息,请参见视图使用方案。
只要所做的修改只影响视图所引用的其中一个基表,就可以更新所有 SQL Server 版本内的视图(可以对其执行 UPDATE、DELETE 或 INSERT 语句)。
-- Increase the prices for publisher ’0736’ by 10%.
UPDATE titleview
SET price = price * 1.10
WHERE pub_id = ’0736’
GO
SQL Server 2000 支持可引用视图的更复杂的 INSERT、UPDATE 和 DELETE 语句。可在视图上定义 INSTEAD OF 触发器,指定必须对基表执行的个别更新以支持 INSERT、UPDATE 或 DELETE 语句。另外,分区视图还支持 INSERT、UDPATE 和 DELETE 语句修改视图所引用的多个成员表。
索引视图是 SQL Server 2000 具有的功能,可显著提高复杂视图类型的性能,这些视图类型通常在数据仓库或其它决策支持系统中出现。
视图的结果集通常不保存在数据库中,因此视图也称为虚拟表。视图的结果集动态包含在语句逻辑中并在运行时动态生成。有关更多信息,请参见视图解析。
复杂的查询(如决策支持系统中的查询)可引用基表中的大量行,并将大量信息聚积在相对较简洁的聚合中,如总和或平均值。SQL Server 2000 支持在执行此类复杂查询的视图上创建聚集索引。当执行 CREATE INDEX 语句时,视图 SELECT 的结果集将永久存储在数据库中。SQL 语句此后若引用该视图,响应时间将会显著缩短。对基本数据的修改将自动反映在视图中。
SQL Server 2000 CREATE VIEW 语句支持 SCHEMABINDING 选项,以防止视图所引用的表在视图未被调整的情况下发生改变。必须为任何创建索引的视图指定 SCHEMABINDING。
例:创建视图
Create View TitleView
AS
Select ID,Title,PostTime,Hits From [List]
然后引用Select Top 100 * From TitleView
用循环输出数据与直接Select Top 100 * From [List]相比速度提高将近30毫秒!
当然我这里只是举例子,一般情况下对单个表没必要去用视图
联系:视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系
区别:1、视图是已经编译好的sql语句。而表不是
2、视图没有实际的物理记录。而表有。
3、表是内容,视图是窗口
4、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时四对它进行修改,但视图只能有创建的语句来修改
5、表是内模式,视图是外模式
6、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。
7、表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。
8、视图的建立和删除只影响视图本身,不影响对应的基本表。
数据库系统中,视图是数据对象,视图可以被看成是虚拟表或存储查询,只有在数据库打开时才能使用。
表是处理数据、创建关系数据库和应用的基本单元,可以是自由表,或是数据库的一部分的数据库表。
视图是建立在表的基础上的
在数据库中,视图是实际上是“不存在”的。
数据库只存储视图的“定义”,但是对视图的访问查询最终还要转换到对数据表的查询。
就相当于提供了一层抽象。懂了吗(方便管理)。
简述视图和表有什么区别
视图和表是数据库管理系统中的两种重要对象,它们在功能、用途和管理上存在差异。区别如下:1. 存储方式:表是物理存储的实体,数据长期存储在数据库中;而视图则是一个虚拟表,不存储实际数据,它基于表的数据动态生成。2. 用途不同:表主要用于存储和组织数据;视图则主要用于展示或简化表中的数据,以...
数据库系统中,视图和表是什么关系?
联系:视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系 区别:1、视图是已经编译好的sql语句。而表不是 2、视图没有...
数据库系统中,视图和表是什么关系?
视图可以被看成是虚拟表或存储查询。可通过视图访问的数据不作为独特的对象存储在数据库内。数据库内存储的是 SELECT 语句。SELECT 语句的结果集构成视图所返回的虚拟表。用户可以用引用表时所使用的方法,在 Transact-SQL 语句中通过引用视图名称来使用虚拟表。使用视图可以实现下列任一或所有功能:将用户...
数据库系统中,视图和表是什么关系?
数据库存储数据是通过表来实现的,其有物理存储空间,也是你数据真正存储的地方。可以通过对表的操作来实现你对数据的操作。视图其实是物理不存在的,其是通过数据库代码来将一些表中的数据进行一个想要的逻辑结构重新进行整理。这是一个视图的展开。这个视图是通过两个表重新组合而成的。其中一个是读者...
数据库系统通常采用什么级模式结构
数据库系统通常采用三级模式结构,分别是外模式(外部模式\/视图)、概念模式(逻辑模式)和内模式(物理模式)。1、外模式(外部模式\/视图):外模式是用户对数据库的可见部分,包括用户能够看到和访问的数据和操作。每个用户可以定义自己的外模式,根据自己的需求和访问权限,指定自己可见的数据和操作。外...
表和视图的区别
根据百度文库显示表和视图的区别有:表是实实在在得保存数据的实体,写入的数据都保存在表中,而视图是不保存数据的,也没有数据。视图是已经编译好的sql语句,而表不是。表是内容,视图是窗口。数据库系统中,视图和表是什么关系?1、也就是存储过程涉及很多的数据处理,整个是一个复杂的过程。它可以...
sql中视图与表的区别?
一、性质不同 1、视图:视图不是一个独立的文件,是由一个或几个基本表导出形成的虚表。2、表:表是数据库中用来存储数据的对象,是有结构的数据的集合,是整个数据库系统的基础。二、存储内容不同 1、视图:视图存储的内容是来自本地数据源或远程数据源的定义,不存放实际数据。2、表:表存储的...
表和视图的区别
性质不同视图:视图不是一个独立的文件,是由一个或几个基本表导出形成的虚表。表:表是数据库中用来存储数据的对象,是有结构的数据的集合,是整个数据库系统的基础。数据库系统中,视图是数据对象,视图可以被看成是虚拟表或存储查询,只有在数据库打开时才能使用。表是处理数据、创建关系数据库和应用...
数据库中视图的作用
是从一个或多个表或视图导出的表。视图与表有时为与视图区别,也称表为基本表不同,视图是一个虚表,即视图所对应的数据不进行实际存储,数据库中只存储视图的定义,在对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的基本表。1、简单性,看到的就是需要的。视图不仅可以简化用户对...
物理数据库设计:索引、视图和存储技术内容简介
《物理数据库设计:索引、视图和存储技术》深入探讨了数据库的物理设计策略,涵盖了广泛的议题。首先,它介绍了物理数据库设计的基础知识,让读者对这一领域有全面的了解。文章详细阐述了基本的索引技术,包括不同类型的索引选择和其在查询优化中的关键作用。在选择索引和制定查询执行计划方面,作者提供了实用...
检超复方: 1 数据库的表就是你所创建的真是的表 2 视图是来源于真实的表,为了不完全将表的数据展现可以创建此表的视图,视图中的数据来源与表,对视图的更改不会影响原表的数据
湖滨区19328872782: 简述视图与数据库原始表的关系??
检超复方: 1 数据库的表就是你所创建的真实的表 2 视图是来源于真实的表,为了不完全将表的数据展现可以创建此表的视图,视图中的数据来源与表,对视图的更改不会影响原表的数据
湖滨区19328872782: 请教各位:.在SQL里 表和视图的区别是什么.. - ?
检超复方: 数据库中的数据都是存储在表中的,而视图只是一个或多个表依照某个条件组合而成的结果集,一般来说你可以用update,insert,delete等sql语句修改表中的数据,而对视图只能进行select操作.但是也存在可更新的视图,对于这类视图的update,insert和delete等操作最终会作用于与其相关的表中数据.因此,表是数据库中数据存储的基础,而视图只是为了满足某种查询要求而建立的一个对象.
湖滨区19328872782: 数据库中,表与视图之间存在哪几种关系? - ?
检超复方: 数据2113库应用系统中,真正存储数据的单元是基表.视图是构建5261于基表上的虚拟表,而且它可以跨多个基4102表或其它视图. 通常数据库应用系统的报表工具实质1653是视图的一种表达方式,视图可以隐藏敏感的内,机密的数据,而将用户需要的数据显现出来. 大概是这样的容.
湖滨区19328872782: 数据库视图到底是什么东西 - ?
检超复方: 数据库视图的概念视图是原始数据库数据的一种变换,是查看表中数据的另外一种方式.可以将视图看成是一个移动的窗口,通过它可以看到感兴趣的数据.视图是从一个或多个实际表中获得的,这些表的数据存放在数据库中.那些用于产生视图的表叫做该视图的基表.一个视图也可以从另一个视图中产生.
湖滨区19328872782: 数据库中的表和视图有什么区别 - ?
检超复方: 最重要的是在服务器的存储和运行过程都几乎是一样的,二者都是以SQL语句集存储的,而且在运行之前都是经过编译的,也就是不用每次都重新编译,这样可以大大提高执行效率. 顾名思义,其区别一个重在“过程”、一个重在“图”. 也...
湖滨区19328872782: 数据库中的表和视图的区别,我的理解,假如你要查询东西,出来的结果是视图,这样的理解对不对? - ?
检超复方: 表就是真正存储数据的结构,视图是通过一段sql自定义生成的虚拟表.比如某种查询比较多,建立个视图,就不用再去表里进行查询生成结果集,直接用视图得到结果,更快一点.可以把视图理解成根据某种查询条件查询表得到的结果集,在数据库里缓存了
湖滨区19328872782: 什么是基本表?什么是视图?两者的区别和联系是什么? - ?
检超复方: 表是实实在在得保存数据的实体,写入的数据都保存在表中,而视图 是不保存数据的,也没有数据.视图就是一条 语句,实际上视图从表中去数据.只是给我们的感觉好像直接...
湖滨区19328872782: 表、索引、视图、数据库四者有什么关系? - ?
检超复方: 表上的索引,表与表之间的关系形成了视图,所有的表、索引、视图都隶属于数据库
湖滨区19328872782: 数据库中表和视图有什么区别 - ?
检超复方: 视图也叫虚拟表,是用一个Select 查询从表产生出来的可以象表一样操作的东西.不过操作的还是表里的数据.没有表,是不可能有视图的!