视图

视图是高效率的数据呈示方法(无需维护数据)。 视图不是实际的表,不需要永久存储器。 将创建并使用 虚拟表

视图提供了另一种查看一个或多个表中的数据的方法,它是结果表的已命名规范。 规范指的是每次在 SQL 语句中引用视图时运行的 SELECT 语句。 视图和表一样具有列和行。 可以像使用表一样将所有视图用于数据检索。 是否可以在插入、更新或删除操作中使用视图取决于它的定义。

视图可以包括它所基于的表中的所有或某些列或行。 例如,可以在视图中连接一个部门表和一个职员表,以便可以列示特定部门中的所有职员。

图 1 显示了表与视图之间的关系。

图 1。 表与视图之间的关系
此图显示表与视图之间的关系。

因为视图允许多个用户查看同一数据的不同表示,所以可以使用视图来控制对敏感数据的访问。 例如,几个用户正在访问关于职员的数据表。 经理可以看到关于他/她的职员的数据,但看不到关于其他部门中的职员的数据。 招聘专员可以看到所有职员的聘用日期,但看不到他们的薪水;财务人员可以看到薪水,但看不到聘用日期。 这些用户中的每个用户都使用派生自表的视图。 每个视图都显示为一个表,并且具有自己的名称。

当视图列直接派生自基本表的列时,该视图列将继承适用于该表列的所有约束。 例如,如果视图包括其表的外键,那么使用该视图的插入和更新操作应遵守与该表相同的引用约束。 此外,如果视图的表是一个父表,那么使用该视图的删除和更新操作应遵守与对表执行删除和更新操作相同的规则。

视图可以从结果表派生每一列的数据类型,或者使类型基于用户定义的结构化类型的属性。 这种视图称为带类型视图。 类似于类型表,带类型视图可以是视图层次结构的一部分。 子视图继承其超视图的列。 术语子视图适用于一个带类型视图以及视图层次结构中该带类型视图下的所有带类型视图。 视图 V 的正确子视图是在带类型视图层次结构中视图 V 下面的一个视图。

视图可能变得不可用(例如,在删除表时);如果出现这种情况,那么该视图将不再适于 SQL 操作。