ABAP基础(五)

 
内表
什么是内表
内表是一个数据对象 , 在运行时内表可保存多个相同结构的数据行数是动态的 , 系统可实时增加内表的大小。
            内表的属性
 
�C         几种数据表的访问 : 分为索引访问 , 键访问
�C         三种表的类型 : 标准表 , 排序表 , 哈希表
          内表的定义
 
TYPES|DATA  itab {TYPE|LIKE}  tabkind OF {linetype|lineobj}
                          [WITH key]
                          [INITIAL SIZE n] .
�C         tabkind  内表种类
�C         linetype  行类型
�C         key  表关键字
�C         n   初始内存大小
�C         内表类型( )
�C         标准表 STANDARD TABLE
    具有逻辑索引
    寻址操作通过关键字或者索引
�C         排序表 SORTED TABLE
    具有逻辑索引
    寻址操作通过关键字或者索引
    按表关键字升序后存储
�C         哈希表 HASHED  TABLE
    没有逻辑索引
    寻址操作只通过关键字
          行类型
基本类型    结构体    内表
          表关键字
�C         行结构为结构体
    WITH [UNIQUE|NON-UNIQUE] KEY comp1 … compn
�C         行结构为基本类型
                      WITH [UNIQUE|NON-UNIQUE] KEY TABLE LINE
�C         不指定关键字
                     WITH [UNIQUE|NON-UNIQUE] DEFAULT KEY
          初始内存大小
INITIAL SIZE  n
 
创建一个内表
       TYPES:  BEGIN OF address,
                  street(20)   TYPE  C,
                  city(20)      TYPE  C,
               END OF  address.
DATA:  BEGIN OF company,
                  name(20)   TYPE  C,
                  address      TYPE  address,
               END OF  company.
DATA itab_company LIKE HASHED TABLE OF company
               WITH UNIQUE KEY name. 
 
l       内表操作( )
l       操作内表行
插入行   INSERT 语句
    插入单行
        INSERT line INTO itab INDEX idx .
    插入多行
        INSERT LINES OF itab1 [FROM n1] [TO n2]
                      INTO [TABLE]  itab2 [INDEX idx]. 
�C         附加行   APPEND 语句
    附加单行
         APPEND  line TO  itab .
    附加多行
                APPEND LINES OF itab1[FROM n1] [TO n2] TO itab .
�C         读取行   READ 语句
    利用索引读取
         READ itab INTO wa INDEX idx .
    利用关键字读取
         READ TABLE itab FROM key INTO wa .
修改行   MODIFY 语句
    根据索引修改
         MODIFY itab [FROM wa] [index idx]
                          [TRANSPORTING f1 f2 …] .
    根据关键字修改
         MODIFY TABLE itab FROM wa
                          [TRANSPORTING f1 f2 …] .
    修改多行
         MODIFY itab FROM wa TRANSPORTING f1 f2 …
                          WHERE cond .
       删除行   DELETE 语句
    通过索引删除
         DELETE itab INDEX idx .
    通过关键字删除
         DELETE TABLE itab FROM wa .
         DELETE TABLE itab WITH TABLE KEY k1=f1 …  ki=fi.
    删除多行
         DELETE itab [FROM n1] [TO n2] [WHERE<condition>]
�C             循环处理结果集合   LOOP 语句
              Loop 语句一条条的读出的数据行 , 写入 INTO 字指定的结构中 , 结构内容可用于输出或写回内表 .
 
LOOP AT itab [INTO wa] [FROM n1] [TO n2]
                                                                 [WHERE<condition>].
        <statement block>
     ENDLOOP
             
 
 
l       表工作区
          创建表工作区 :
�C         Tables t_name.
       DATA: begin of t_name,
             F1 type c ,
              Endt_name.
 
表工作区就是其他语言的结构 , 象自定义的一个类型一样 , 但一旦创建一个内表之后 , 工作区就成了外界跟内表的交流口 , 每条记录的进入和取出都得通过它 , 并且清除它们的时候分开来清除 .

你可能感兴趣的:(职场,休闲,ABAP基础)