- 達夢數據庫編程指南
- 戴劍偉等編著
- 1712字
- 2022-05-06 19:00:24
2.5.7 集合類型
1.變長數組
變長數組是一種具有可伸縮性的數組,它有一個最大容量。變長數組的下標是從1開始的有序數字,并提供多種方法操作數組中的項。定義變長數組的語法格式如下:

數據類型可以是基本數據類型,也可以是自定義類型或對象、記錄、其他變長數組類型等。變長數組使構造復雜的結構成為可能。
【例2-13】一個簡單的VARRAY使用示例。


2.索引表
索引表提供了一種快速、方便地管理一組相關數據的方法,是程序設計中的重要內容。通過索引表可以對大量類型相同的數據進行存儲、排序、插入及刪除等操作,從而可以有效地提高程序開發效率,改善程序的編寫方式。
內存索引表是一組數據的集合,數據按照一定規則組織起來,形成一個可操作的整體,是對大量數據進行有效組織和管理的手段之一,通過函數可以對大量性質相同的數據進行存儲、排序、插入及刪除等操作,從而可以有效地提高程序開發效率及改善程序的編寫方式。
內存索引表和數組類似,只是內存索引表使用起來更加方便,但是性能不如數組。數組在定義時需要用戶指定數組的大小,當用戶訪問超過數組大小的數組元素時,系統會報錯;內存索引表相當于一個一維數組,但不需要用戶指定大小,大小根據用戶的操作自動增減。語法格式如下:

第一個數據類型是索引表存放數據的類型,這個數據類型可以是基礎數據類型,也可以是自定義類型或對象、記錄、靜態數組,但不能是動態數組;第二個數據類型是索引表的下標類型,目前僅支持INTEGER/INT和VARCHAR兩種類型,分別代表整數下標和字符串下標。對于VARCHAR類型,長度不能超過1024B。
索引表的成員函數可以用來遍歷索引表,或者查看索引表的信息。
【例2-14】索引表舉例。

【例2-15】普通的索引表舉例。


【例2-16】索引表存儲游標記錄舉例。

【例2-17】利用索引表管理記錄舉例。


【例2-18】多維索引表的遍歷舉例。


3.嵌套表
嵌套表元素的下標從1開始,并且元素個數沒有限制。嵌套表語法格式如下:

元素數據類型用于指明嵌套表元素的數據類型,當元素數據類型為一個定義了某個表字段的對象類型時,嵌套表就是某些行的集合,實現了表的嵌套功能。
【例2-19】嵌套表的使用示例。

4.集合的屬性和方法
集合類型中的變長數組、索引表和嵌套表都是對象類型的,它們本身有屬性或方法。
(1)COUNT屬性。
COUNT是一個屬性,它用于返回集合中的元素個數。
【例2-20】統計3種集合類型的元素個數。


(2)DELETE方法。
DELETE方法用于刪除集合中的一個或多個元素。需要注意的是,由于DELETE方法執行刪除操作的位置固定,因此對于可變數組來說沒有DELETE方法。DELETE方法有以下3種形式。
① DELETE:不帶參數的DELETE方法將整個集合刪除。
② DELETE(x):將集合中第x個位置的元素刪除。
③ DELETE(x,y):將集合中從第x個元素到第y個元素之間的所有元素刪除。
注意,執行DELETE方法后,集合的COUNT值將會立刻變化;而且當要刪除的元素不存在時,DELETE方法也不會報錯,而是跳過該元素,繼續執行下一步操作。
(3)EXISTS屬性。
EXISTS屬性用于判斷集合中的元素是否存在。語法格式如下:

EXISTS(x)判斷位于位置x的元素是否存在,如果存在,則返回TRUE;如果x超出集合的最大范圍,則返回FALSE。
注意,當使用EXISTS屬性判斷時,只要在指定位置處有元素存在即可,即使該位置的元素為NULL,EXISTS屬性也會返回TRUE。
(4)EXTEND方法。
EXTEND方法用于將元素添加到集合的末端,具體形式有以下3種。
① EXTEND:不帶參數的EXTEND方法將一個NULL元素添加到集合的末端。
② EXTEND(x):將x個NULL元素添加到集合的末端。
③ EXTEND(x,y):將x個位于位置y的元素添加到集合的末端,也就是在集合末尾擴展x個與第y個元素值相同的元素。
說明:對內存索引表不適用。
(5)FIRST屬性和LAST屬性。
FIRST屬性用于返回集合的第一個元素;LAST屬性則返回集合的最后一個元素。
(6)LIMIT屬性。
LIMIT屬性用于返回集合中的最大元素個數。由于嵌套表沒有上限,因此當嵌套表使用LIMIT屬性時,總是返回NULL。
(7)NEXT屬性和PRIOR屬性。
NEXT屬性和PRIOR屬性返回指定位置之后或之前的元素。使用NEXT屬性和PRIOR屬性時,要有指定位置的參數。語法格式如下:

其中,NEXT(x)表示返回位置x處元素后面的那個元素;PRIOR(x)表示返回位置x處元素前面的那個元素。
(8)TRIM方法。
TRIM方法用于刪除集合末端的元素,其具體形式如下。
① TRIM:不帶參數的TRIM方法從集合末端刪除一個元素。
② TRIM(x):從集合的末端刪除x個元素,其中x要小于集合的COUNT值。
- Java Data Science Cookbook
- Visual Studio 2015 Cookbook(Second Edition)
- Game Development with Swift
- 大數據可視化
- 數據挖掘原理與SPSS Clementine應用寶典
- 大數據架構商業之路:從業務需求到技術方案
- Proxmox VE超融合集群實踐真傳
- 高維數據分析預處理技術
- 科研統計思維與方法:SPSS實戰
- Power BI智能數據分析與可視化從入門到精通
- SAS金融數據挖掘與建模:系統方法與案例解析
- 區塊鏈應用開發指南:業務場景剖析與實戰
- Learning Ansible
- 數據庫基礎與應用
- 數據庫高效優化:架構、規范與SQL技巧