Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-查询/SQL语句

精通MS-ACCESS SQL之基础篇(20)

时 间:2017-12-11 09:32:07
作 者:Big Young   ID:252  城市:襄阳
摘 要:    视图的创建、删除与应用(CREATE VIEW)。
正 文:

第二十节 视图的创建、删除与应用

什么是视图呢?在SQL中,一个视图是基于某个Select语句的结果集的可视化的表。视图包含行和列,就像一个真实的表。视图中的字段(域)就是来自一个或多个数据库中的真实的表中的字段(域)。我们可以向视图添加SQL函数、Where以及JOIN语句,我们也可以提交数据,就像这些来自于某个单一的表,当然数据库的设计和结构不会受到视图中的函数、WhereJOIN语句的影响。

一、创建视图的基本语法

要创建视图在ACCESSSQL中需要使用“Create VIEW”命令,其基本语法如下:

Create VIEW view [(field1[, field2[, …]])] AS selectstatement

“Create VIEW”语法项目说明:

项目

说明

View

将要创建的视图的名称。

field1field2

字段名称或与选择查询语句中指定的字段相对应的字段列表。

Selectstatement

SQLSelect(选择)查询语句。

编写创建视图的SQL语句须注意的是:

1、语句中的Select(选择)查询语句用于定义视图,不能是“Select INTO”语句。

2、定义视图的Select语句不能包含任何参数。

3、视图的名称不能与库中已有的表重名。

4、如果定义查询的Select语句是可更新的,那视图也是可以更新的,否则视图是只读的。

5、如果通过Select语句定义查询中的任意两个字段重名,视图定义中必须包含一个别名列表来区分查询中的每一个字段。

6、数据库中不会存储视图数据!每当用户查询某个视图时,数据库引擎会使用视图的Select语句来重建数据。

二、用Create VIEW创建视图

在数据库中创建查询,也可以说是创建了一个虚拟表,下面我们还是打开学生成绩示例数据库,先创建一个基于学生成绩表的简单视图,用此先来热一热身,语句如下:

Create VIEW 成绩视图

AS

Select *

FROM 学生成绩;

运行此查询,就会在数据库中创建一个名称为成绩视图的视图,如图20-1所示:

 

20-1:创建“成绩视图视图

双击打开成绩视图视图,与双击打开学生成绩表,我们对照一下会发现数据内容完全是一样的,这再进一步证明了视图只是一个虚拟表。我们再来用选择查询查询一下“成绩视图,看是什么效果。

Select *

FROM 成绩视图;

运行,会看到如下图20-2的效果,回忆一下,是不是跟我们前面例子中打开的“学生成绩表是一样的。

20-2:以视图为源表的查询效果

当然我们创建的视图中是可以选择字段的,这就给我们生成各种临时的表以巨大的方便性。

三、通过视图来更新表中的数据

我们可以通过更新语句来更新视图从而最终更新表中的内容,在图20-2中我们看到学号为1的钱梅宝同学的体育成绩为90,现在我们把它更新为100,语句如下:

Update 成绩视图

SET 体育=100

Where 学号=1;

运行后效果如图20-3的情况:

20-3:更新视图中的内容

单击按钮后,视图的内容改变了,如图20-4

20-4:更新后的视图效果

大家再打开“学生成绩表看一看,是不是表中的内容也被更新了。

四、视图的删除

删除视图非常简单,只要用Drop VIEW语句就可以了,如要删除我们前面创建的成绩视图,只要在SQL视图中键入如下命令并执行就可以了:

Drop VIEW 成绩视图;

效果如图20-5所示,成绩视图没有了:

20-5:删除了已创建的视图

五、为什么要使用视图

主要原因有以下几条:

1、方便简单,定义好视图后查询的逻辑已经设定,可以之后重复调用查询,不用重复写查询语句;

2、安全,只读视图中的数据仅可查询,不能修改,不会影响正式表的数据;

3、逻辑数据独立性,应用视图前,程序只能通过访问数据表去实现操作,使用视图则可让程序访问数据表时,通过视图来分开;

4、有些数据库负责的项目组人员不一样,要串联不同数据库时,可以只建立视图供其他组的同事访问,则不用开放数据表出来,出问题也不会影响数据库的原始数据表。



Access软件网QQ交流群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助