首页 理论教育数据库技术与应用教程:定义视图的SQL语句及格式

数据库技术与应用教程:定义视图的SQL语句及格式

【摘要】:定义视图的SQL语句为CREATE VⅠEW,其一般格式为CREATE VⅠEW<视图名>[(列名[,……但在如下三种情况下必须明确指定组成视图的所有列名。

定义视图的SQL语句为CREATE VⅠEW,其一般格式为

CREATE VⅠEW<视图名>[(列名[,……n])]

AS

SELECT语句

其中的SELECT语句要注意以下几点。

(1)定义视图的查询语句中通常不包含ORDER BY和DⅠSTⅠNCT子句,这些语句可放在通过视图查询数据的语句中。

(2)在定义视图时要么指定全部视图列,要么全部省略不写,不能只写视图的部分属性列。如果省略了视图的属性列名,则视图的列名与查询语句的列名相同。但在如下三种情况下必须明确指定组成视图的所有列名。

①SELECT语句中的查询列不是单纯的属性名,而是函数或表达式等无列名的列。

②多表连接时选出了几个同名列作为视图的字段。

③需要在视图中为列选用新的更合适的列名。

1.定义单源表视图(www.chuimin.cn)

单源表的行列子集视图指视图的数据取自一个基本表的部分行、列,这样的视图行列与基本表行列对应。用这种方法定义的视图可以对数据进行查询和修改操作。

DBMS执行CREATE VⅠEW语句的结果只是保存视图的定义,并不真正执行其中的SELECT语句。只有在对视图执行查询时,才按视图的定义从相应基本表中查询数据。

2.定义多源表视图

多源表视图指定义视图的查询语句所涉及的表可以有多个,这样定义的视图一般只用于查询,不用于修改数据。

3.在已有视图上定义新视图

还可以在视图上再建立视图,这时作为数据源的视图必须是已经建立好的视图。这里的视图V_ⅠS_S2就是建立在V_ⅠS_S 1视图之上的。视图的来源不仅可以是单个的视图和基本表,而且还可以是视图和基本表的组合。

4.定义带表达式的视图

在定义基本表时,为减少数据库中的冗余数据,表中只存放基本数据,而基本数据经过各种计算派生出的数据一般是不存储的。但由于视图中的数据并不实际存储,所以定义视图时可以根据需要设置一些派生属性列,在这些派生属性列中保存经过计算的值。这些派生属性由于在基本表中并不实际存在,因此,也称它们为虚拟列。包含虚拟列的视图也称为带表达式的视图。

5.含分组统计信息的视图

含分组统计信息的视图是指定义视图的查询语句中含有GROUP BY子句,这样的视图只能用于查询,不能用于修改数据。