1.?????
內(nèi)表的類(lèi)型及定義:
(
1
)
.ANY TABLE
:即任意表類(lèi)型,此種定義方式只能在傳遞參數(shù)的時(shí)候定義。
?????
例如:
FORM XXX USING/CHANGING TYPE ANY TABLE .
(
2
)
.ANY TABLE
包括了兩種類(lèi)型:
INDEX TABLE
和
HASHED TABLE
。
??
《
1
》
.INDEX TABLE
:包括了
STANDARD TABLE
和
SORTED TABLE
A.?????
STANDARD TABLE
:其實(shí)就是一個(gè)線(xiàn)性表,通過(guò)
key
訪(fǎng)問(wèn)內(nèi)表是線(xiàn)性查找的,也就是說(shuō),隨著表中記錄的增加,對(duì)表的操作的時(shí)間開(kāi)銷(xiāo)也相應(yīng)的增加。
定義方法:
TYPES/DATA
:
LIKE/TYPE STANDARD TABLE OF .
B.?????
SORTED TABLE:
顧名思義,表中的記錄是按照一定的順序排列的。訪(fǎng)問(wèn)表的主要方式是表中定義的
key
,如果
key
不唯一,則選擇
index
最小的那個(gè)。也可以通過(guò)
index
來(lái)訪(fǎng)問(wèn)排序表,如果你想通過(guò)
index
插入一條記錄,系統(tǒng)會(huì)自動(dòng)檢查你插入的位置是否正確。所以,如果插入的時(shí)間比插入到標(biāo)準(zhǔn)表的時(shí)間會(huì)長(zhǎng)。因此,盡量選擇
key
來(lái)對(duì)排序表進(jìn)行操作。
定義方法:
TYPES/DATA
:
LIKE/TYPE SORTED TABLE OF .
《
2
》
.HASHED TABLE
:對(duì)哈希表只能用你定義的
key
進(jìn)行操作,而不能使用
index
進(jìn)行操作。因此,定義哈希表必須定義
unique key
。注意:所有關(guān)于使用
index
操作表的語(yǔ)句都不能用于操作哈希表。例如:
sort
,
loop
等。
????????
定義方法:
TYPES/DATA
:
LIKE/TYPE HASHED TABLE OF .
2.?????
內(nèi)表的操作:
(
1
)
.
創(chuàng)建:
????? A.
定義一個(gè)結(jié)構(gòu),然后
type/like
這個(gè)結(jié)構(gòu)
????????
例如:
TYPES: BEGIN OF ,
?????????...
?????????igt; ...,
?????????...
???????END OF .
DATA ?TYPE STANDARD TABLE OF
?????????????????WITH NON-UNIQUE DEFAULT KEY
???????????????? INITIAL SIZE
???????????????? WITH HEADER LINE.
????? B. type/like
系統(tǒng)表或者數(shù)據(jù)庫(kù)表或者結(jié)構(gòu)
DATA ?TYPE STANDARD TABLE OF <
系統(tǒng)表名
>
???????????????? INITIAL SIZE
???????????????? WITH HEADER LINE.
(
2
)
.
添加數(shù)據(jù):
????? A
.
APPEND
:直接向表中添加數(shù)據(jù)
1.
APPEND [wa TO|INITIAL LINE TO] itab[ASSIGNING |REFERENCE INTO dref].
2.
APPEND LINES OF itab1 [FROM idx1] [TO idx2] TO itab2.
3.
APPEND [wa TO] itab SORTED BY f [ASSIGNING
????? B
.向表中插入數(shù)據(jù):
1.
INSERT [wa INTO|INITIAL LINE INTO] itab [INDEX
idx] [ASSIGNING |REFERENCE INTO dref].
2.
INSERT [wa INTO|INITIAL LINE INTO] TABLE itab
[ASSIGNING |REFERENCE INTO dref].
3.
INSERT LINES OF itab1 [FROM idx1] [TO idx2]
INTO itab2 [INDEX idx3].
4.
INSERT LINES OF itab1 [FROM idx1] [TO idx2]
INTO TABLE itab2.
????? C
.相同字段求和向表里添加:
Basic form
COLLECT [wa INTO] itab.
Extras:
1.
... ASSIGNING
2.
... REFERENCE INTO dref
3.
... SORTED BY f
(
3
)
.
刪除數(shù)據(jù):
1.
DELETE itab.
2.
DELETE TABLE itab WITH TABLE KEY k1 = v1 ... kn = vn.
3.
DELETE TABLE itab [FROM wa].
4.
DELETE itab INDEX idx.
5.
DELETE itab FROM idx1 TO idx2.
6.
DELETE itab WHERE logexp.
7.
DELETE ADJACENT DUPLICATES FROM itab.
(
4
)
.
修改數(shù)據(jù):
1.
MODIFY itab [FROM wa] [INDEX idx] [ASSIGNING |REFERENCE INTO
dref] [TRANSPORTING f1 ... fn].
2.
MODIFY TABLE itab [FROM wa] [ASSIGNING |REFERENCE INTO dref] [TRANSPORTING f1 ... fn].
3.
MODIFY itab [FROM wa] TRANSPORTING f1 ... fn WHERE cond.