學習筆記(十一)

標準表,關鍵字爲STANDARD TABLE,系統爲該表的每一行數據生成一個邏輯索引,填充時,可以將數據附加在現有行之後,也可是插入到指定的位置,程序對行的尋址操作可通過關鍵字或索引進行,進行插入、刪除操作時,各行在內存中的位置不變,系統重新排列各行的索引值;

排序表,關鍵字爲SORTED TABLE,也有一個邏輯索引,不同的是排序表總是按其表關鍵字升序排列後再存儲,也通過關鍵字或索引訪問;

哈希表,關鍵字爲HASHED TABLE,沒有索引,只能通過關鍵字訪問,系統用哈希算法管理表中的數據,因此其尋址一行的時間與表的行數無關;

一般性表,即索引表INDEX TABLE 和任意表ANY TABLE,可以用於類型定義中,但不能用於聲明一個內表對象,因爲沒有任何明確的表類型,系統無法確定其操作方式,可以用於指明字段符號和接口參數的類型,以增加這些元素的實用性,其實際類型可能在運行期內才能夠確定;

行結構,內表的行可以是有任意類型的數據類型組成,大多數行類型是結構體或者是引用數據字典中的結構形成的,也有基本類型或引用類型的數組,行結構中還可以包含表類;

表關鍵字在訪問內表和內表排序的過程中起重要作用,使用WITH KEY 指定表關鍵字,如果不指定關鍵字,系統使用默認(標準)關鍵字;

如果內錶行結構是結構體,則可以指定結構體中的某幾個字段作爲內表關鍵字,該字段不能是內表或者引用類型,可以是嵌套結構體;

如果內表的整個行都是由基本類型字段組成的,則可以把內表整行指定爲表關鍵字,如果內表字段是結構化類型,則不應指定整行作爲關鍵字段;

WITH [UNIQUE | NON-UNIQUE] KEY com1

WITH [UNIQUE | NON-UNIQUE] KEY TABLE LINE

WITH [UNIQUE | NON-UNIQUE] DEFAULT KEY

扁平結構內表的默認表關鍵字是非數字和非內表的組件字段,如果內表的行是個單個基本類型組成,則默認關鍵字爲整行,如果內錶行中包含有內表類型字段,則沒有默認關鍵字段;

標準表不能用UNIQUE關鍵字,也無需指明NON-UNIQUE,排序表可以用UNIQUE或NON-UNIQUE,哈希表不能用NON-UNIQUE,必須指明UNIQUE;

TYPES: BEGIN OF address,
  street(20) TYPE c,
  city(20) TYPE c,
END OF address.

DATA: BEGIN OF company,
  name(20) TYPE c,
  addresses TYPE address,
  END OF company.

DATA table_company LIKE HASHED TABLE OF company WITH UNIQUE KEY name.
DATA table_company_sorted LIKE SORTED TABLE OF company WITH UNIQUE KEY name.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章