第8章:视图.doc

第8章:视图

第八章:视图 视图是从一个或多个表中导出来的表,是一种虚拟存在的表。视图就像一个窗口,通过这个窗口可以看到系统专门提供的数据。这样,用户可以不用看到整个数据库表中的数据,而只关心对自己有用的数据。视图可以使用户的操作更方便,而且可以保障数据库系统的安全性。在这一章中将讲解的内容包括: 视图的含义和作用 如何创建视图 如何修改视图 如何查看视图 如何删除视图 8.1 视图简介 视图由数据库中的一个表或多个表导出的虚拟表。其作用是方便用户对数据的操作。本节将详细讲解视图的含义、作用。 8.1.1 视图的含义 视图是一种虚拟的表。视图从数据库中的一个或多个表导出来的表。视图还可以从已经存在的视图的基础上定义。数据库中只存放了视图的定义,而并没有存放视图中的数据。这些数据存放在原来的表中。使用视图查询数据时,数据库系统会从原来的表中取出对应的数据。因此,视图中的数据是依赖于原来的表中的数据的。一旦表中的数据发生改变,显示在视图中的数据也会发生改变。 8.1.2 视图的作用 视图是在原有的表或者视图的基础上重新定义的虚拟表,这可以从原有的表上选取对用户有用的信息。那些对用户没有用,或者用户没有权限了解的信息,都可以直接屏蔽掉。这样做既使应用简单化,也保证了系统的安全。视图起着类似于筛选的作用。视图的作用归纳为如下几点: 1.使操作简单化 2.增加数据的安全性 3.提高表的逻辑独立性 视图作用: 8.2 创建视图 创建视图是指在已存在的数据库表上建立视图。视图可以建立在一张表上,也可以建立在多张表上。本节主要讲解创建视图的方法。 创建视图的语法形式 创建视图是指在已存在的数据库表上建立视图。视图可以建立在一张表上,也可以建立在多张表上。本节主要讲解创建视图的方法。 MySQL中,创建视图是通过SQL语句CREATE VIEW(克瑞特.为友)实现的。其语法形式如下: CREATE [ ALGORITHM(表示视图选择的算法) = { UNDEFINED(自动选择) | MERGE (视图与视图定义定义合并起来)| TEMPTABLE(使用临时表) } ] VIEW 视图名 [ ( 属性清单 ) ] AS SELECT语句(查询语句,表示从某个表中满足条件的记录) 下面是视图的权限范围详细解释如下: [ WITH [ CASCADED | LOCAL ] CHECK OPTION 先进入mysql数据库: 下面是查询和创建视图的权限: mysql SELECT Select_priv,Create_view_priv FROM mysql.user WHERE user=root; +-------------+------------------+ | Select_priv | Create_view_priv | +-------------+------------------+ | Y | Y | | Y | Y | +-------------+------------------+ 2 rows in set (0.27 sec) 两个Y表示root用户可以查询视图和创建视图。 8.2.2 在单表上创建视图 MySQL中可以在单个表上创建视图。 下面在department表上创建一个简单的视图,这是复制department_view1表 就是创建了一个和上面department_view1一样的表。 下面创建视图带视图名: CREATE [ ALGORITHM = { UNDEFINED | MERGE | TEMPTABLE } ] VIEW 视图名 [ ( 属性清单 ) ]—所要创建的视图名 及属性 AS SELECT语句(SELE是查询语句)--用于查询哪几个字段 [ WITH [ CASCADED | LOCAL ] CHECK OPTION ] ; 8.2.3 在多表上创建视图 MySQL中也可以在两个或两个以上的表上创建视图,也是使用CREATE VIEW语句实现的。【示例8-4】下面在department表和worker表上创建一个名为worker_view1的视图。 创建视图的代码如下: CREATE ALGORITHM=MERGE VIEW worker_view1 ( name, department,sex, age,address )—创建视图表有这几个字段 AS SELECT name, department.d_name, sex, 2009-birthday, address—表示查询已经存在表中的这几个字段,一一对应 FROM

文档评论(0)

1亿VIP精品文档

相关文档