• ABAP学习笔记之——第七章:ABAP数据字典


    一、数据字典

            在 ABAP 程序里使用的所有对象 (表、视图、结构体、类型等)统称为 ABAP 数据字典。这些对象的信息叫 Metadata 或者 Data Definition,另外,ABAP 数据字典有定义和管理数据结构,集中管理系统中使用的对象的功能。

    数据字典类型:

    1、数据库对象:

    表:存储系统中生成的数据实际物理内存,是数据库的主干。

    视图:由一个以上的表逻辑性结合在一起的结构,因此没有实际存储的数据,只是结合表中的数据,主要用于查询符合条件的数据。

    2、类型定义:

    数据元素(基本类型与参照类型): 包含字段的描述且可以参照域生成。域是定义表字段的技术属性的对象,在 ABAP 程序中不能直接参照域定义变量。

    结构体(结构体类型):由拥有类型的组件构成。

    表类型:用于定义内表的技能属性,其中存在特殊结构的 Range 表类型

    3、Abap工具:

    二、表

    表由二维结构模型(Matrix)构成。列中显示各自的名字及属性,这些称之为字段 (Field)。字段是固定的,拥有不重复的唯一的名字及属性。表可以指定一个或多个字段作为主键,并且通过这些主键控制重复数据的产生。除了主键以外的字段叫一般字段General Field)或者叫功能字段(Functional Field)。另外,表的行坐标用行(Line)、元组(Tuple)、记录 (Record)、数据 (Data) 等术语表达。

    表分三种:透明表、池表、簇表。池表、簇表是把多个表组合成一个ABAP数据字典对象。 

    表属性:

    表字段有字段名及属性。存在主键。

    表字段包含以下属性:

    字段名最大长度为 16 位,要以字母开头,允许使用下画线 (_)。

    主键选项定义表主键。

    字段要指定为主键时选择 Key 选项。一般把唯一可以区分数据的字段设置为主键。

    一个表最多可以指定 16 个主键

    主键字段长度合计长度可达 120。

    主键基本上都选择Initial Value

    选项创建表时自动创建以主键构成的主索引。

    初始值用于设置字段的初始值。

    NULL与Initial value(初始值)的区别:

    NULL 是指“无”。

    NULL 是指不存在值。不占用内存空间。

    NULL 不可能是下列值。

    :0,’’,SPACE,空

    NULL 不能作为分配、运算、比较用对象。

    在ABAP语言中类似于IS NULLIS NOT NULL的比较运算符可以用在 SOL语句中

    Initial Value 是指“有”

    -Initial Value 是指存在值。因此占用内存空间。

    -Initial Value 可能会是下列值。

    :0,,SPACE,空

    -Initial Value 可以作为分配、运算、比较用对象。

    在ABAP 语言中可以使用类似于IS INITIALIS NOTINITIAL 比较运算符

    字段类型定义如字符型,数字型等数据类型

    字段长度定义字段可容纳的数据长度。

    小数位指定小数位。

    记述字段意义的内容。

    表创建涉及的Delivery Class

    外部键定义该表与其他表之间的关系。

    一般外部键:只将检查表的一部分主键定义成了外部键。此时,在外部表中追加数据,则只会检查设定为外部键的字段是否存在。这种情况叫一般外部键定义。

    静态外部键:外部键中可以指定常量。当该字段的值和常量一致时才能输入值,否则就无法输入值。

    技术属性设置表数据的总件数、缓冲设定等表属性。

    Include结构体:创建一个公用的结构体,当很多表重复使用相同的字段时,可直接将此结构体包含到表中。

    Append结构体:在实际业务中使用的 Append 结构体是指把一个结构体追加到一个表(或结构体)的方法,换句话说,就是不用直接修改表而可以追加字段的方法。

    Append 结构体有下列几种功能

    在标准或者 CBO 表中追加新字段

    在现存表中追加及定义外部键。

    在现存表中追加检索帮助。

    索引可以提高查询数据的速度,在表中创建索引。若表中已经追加了索引,则每当往表中追加数据时索引中也要一起追加,因此读取速度提高的同时插入数据的速度反而下降

     

    三、结构体

            结构体 (Structure) 和表一样由字段构成,但不能存储数据,只是拥有结构。在实际数据库中不存在,而只存在于 ABAP 数据字典中,是一个类型。

            结构体在 ABAP 程序中是以参照类型或表及结构体的从属结构 (INCLUDE、APPEND)形式使用的。类似于表用TABLES 语句定义结构体,可以当个别程序的工作区使用。另外,结构体可以用于定义模块池画面(Screen)的接口及函数的参数类型。

            结构体可以包含其他结构体且可以无限包含。

    四、视图

    关系型数据库中存在多个表,且这些表中的数据很多情况下都是分散存在的。在这种情况下需要一次查询所有数据时就要使用视图。

     

    视图类型:

    数据库视图 (Database View)。

    数据库视图是在多个表中提取必要的数据的视图。激活视图后在 ABAP 数据字典中可以使用,它是通过ABAP数据字典定义的,因此和一般ABAP数据字典表一样可以用OPEN SOLNATIVE SOL 从程序中读取数据。

    投影视图 (Projection View)。

    可以同时维护多个表中的数据的对象叫维护视图,此时表之间是由外部键连接在一起的。SAP R/3 是逻辑性单位,因此很多情况下数据都存在于多个表中。此种情况下利用维护表可以一次性查询/变更/创建所有数据。

    帮助视图 (Help View)。

    维护视图(Maintenance View)

    创建视图可能会用上的属性工具:

    视图字段选项:

     视图访问选项:

     表维护器选项:

    五、表类型

    表类型特性:

    为了定义内表行数据类型属性与结构体的行类型

    为了访问及内表数据的选项 (Access Mode)。

    内表的主键(主键定义与主键范畴)。

    创建表类型相关说明:

    访问模式:

     主键定义:

    访问模式与主键范畴:

     

    RANGE表类型:RANGE 表类型是特殊表类型,在 ABAP 程序中当 RANGE 变量使用。

    RNAGE 表类型是 ABAP 数据字典,因此是在所有程序中都可以使用的对象。与此相反,RANGE变量是在个别程序中用 RANGES 语定义而使用的对象。RANGES 变量的结构与带表头的 SELECT-OPTIONS 的结构相同。若从部传入值为目的的对象是 SELECT-OPTIONS,则RANGES 变量主要用于内部变量。本地 RANGE 变量使用下列语句定义。        

    RANGE变量由下面4个结构组成:

    SIGN: I(Inclusive), E(Exclusive)。

    OPTION: EQ (等于),BT (区间值),GE (大于等于),LE (小于等于),GT(大于),LT (小于),NE(不等于),CP (包含)。

    LOW: FROM值。

     

    六、域

    定义:域(DOMAIN)是定义字段的技术属性,是分配到数据元素中使用的对象。

    定义表字段类型、长度等技术属性的对象叫域,而记述字段内容等信息的对象叫数据元素。所有表与结构体可以使用分配了域的数据元素定义字段。

     

    七、数据元素

    定义:数据元素就是拥有表字段的所有信息的 ABAP 数据字典对象。

    数据元素与基本类型:

    定义元素的技术属性方法有两种:

    • 使用域。在前面已经介绍,域是 ABAP 数据字典中独立存在的存储对象,是定义数据元素的技术属性的对象。一个域可以在多个数据元素中使用。
    • 直接使用数据类型。数据类型 (Data Type) 是事先定义在ABAP 数据字典中的经常使用的数据类型,和基本数据类型一样可以在程序内参照使用。

    基本数据类型与数据字典类型

     数据字典类型种类

  • 相关阅读:
    Spring Batch批量处理数据
    关于 Kafka 你必须知道的知识点(图文详解)
    10个简单但超级有用的Python装饰器
    Revit插件 | Unbelievable,有人居然自己写代码搞『批量喷头 』
    传统企业数字化转型,处理好业务问题是关键
    SQL连接查询优化[姊妹篇.第五弹]
    《计算机网络 - 自顶向下方法》阅读笔记
    will insert additional declarations immediately before the previous line.#endif
    辉芒微IO单片机FT60F021-RB
    数据结构与算法复习:第三十五弹
  • 原文地址:https://blog.csdn.net/yishangbing/article/details/128158133