Appearance
视图
一、什么是视图
关系型数据库中存在多个表,且这些表中的数据很多情况下都是分散存在的。在这种情况下需要一次查询所有数据时就要使用视图。视图结构请参照如图[7-291所示。视图支持集合查询一个或多个表里存在的数据的功能。在ABAP 数据字典中激活视图会在数据库中生成此视图,访问此数据库视图需要用数据库接口进行访问。只是查询必要的表和字段不需要查询没必要的字段,因此可以最小化接口。视图与表一样,可以在ABAP 程序的SELECT
语句中使用。数据库视图在 ABAP 数据字典中定义后激活,则会自动在数据库中生成。但在 ABAP数据字典中变更数据库视图,则这些变更事项不会直接影响数据库中的视图。视图不是拥有数据的对象,因此要删除之前的视图后重新生成 ABAP 数据字典中定义的新视图。利用视图访问数据库表资料时可以使用OPENSQL
或者NATIVESQL
两种方法。OPEN SQL
通过数据库接口被译成数据库依存的NATIVESQL。
Maintenance status是定义视图只读属性或者读/写属性的功能。若数据库视图由两个以上的表构成,则此视图只能实现读取功能。
二、视图的类型
视图有下列四种类型。在本书中只详细介绍数据库视图与维护视图。
- 数据库视图(Database View)。
- 投影视图(Projection View)。
- 帮助视图(Help View)。
- 维护视图(Maintenance View)。
- 数据库视图 数据库视图是在多个表中提取必要的数据的视图。激活视图后在 ABAP 数据字典中可以使用,它是通过ABAP数据字典定义的,因此和一般ABAP数据字典表一样可以用
OPEN SOLNATIVE SQL
从程序中读取数据。若只使用一个表定义视图,则可以利用MAINTENANCESTATUS
来定义读/写属性。数据库视图只适用于透明表。[图 7-30]显示应用程序利用数据库接口访问由多个表构成的视图数据的过程。 - 维护视图 可以同时维护多个表中的数据的对象叫维护视图,此时表之间是由外部键连接在一起的。
SAPR/3
是逻辑性单位,因此很多情况下数据都存在于多个表中。此种情况下利用维护表可以一次性查询/变更/创建所有数据。即集合外部键连接在一起的字段生成维护视图,在视图中输入、删除、变更数据则实际表中的数据也被修改。另外,在维护表中使用的所有表由外部键连接在一起且不能在 ABAP 程序中的 SELECT 语句中使用。
三、创建视图
1.创建数据库视图
这四种类型的视图都通过T-CODE:SE11
创建。首先利用材料主数据表MARA
和MARC
生成数据库视图。