4.2.1 视图定义
4.2.1 视图定义
我们在SQL
中用create view
命令定义视图。为了定义视图,我们必须给视图一个名称,并且必须提供计算视图的查询。
创建视图的格式
create view
命令的格式为:
1 | create view v as<query expression>; |
其中
<query expression>
可以是任何合法的查询表达式,v
表示视图名
实例
重新考虑需要访问instructor
关系中除salary
之外的所有数据的职员。这样的职员不应该授予访问instructor
关系的权限(我们将在后面4.6
节介绍如何进行授权)。相反,可以把视图关系faculty
提供给职员,此视图的定义如下:
1 | create view faculty as |
1 | mysql> create view faculty as |
视图关系是在需要的时候才被创建的
正如前面已经解释过的,视图关系在概念上包含查询结果中的元组,但并不进行预计算和存储。相反,数据库系统存储与视图关系相关联的查询表达式。
当视图关系被访问时,视图关系中的元组是通过计算查询结果而被创建出来的。从而,视图关系是在需要的时候才被创建的。
为了创建一个视图,列出Physics
系在2009
年秋季学期所开设的所有课程段,以及每个课程段在哪栋建筑的哪个房间授课的信息,我们可以写出:
1 | create view physics_fall_2009 as |
1 | mysql> create view physics_fall_2009 as |