Oracle資料庫(七) 集合型別

2021-09-25 02:12:48 字數 1944 閱讀 7065

集合是一種類似於列表或者一維陣列的資料結構;乙個集合是由若干個元素(一大堆資料)組成的,集合中的每個元素位於列表中的乙個固定索引處。有時候,集合中的乙個元素叫做一行,對應的索引就叫做行號。

同質元素:集合中的每乙個元素的資料型別都是相同的。

屬性關聯陣列

巢狀表varray

緯度一維

一維一維

是否可用於sql

不可用可用

可用是否可作為表中列的資料型別

不可用可以;資料在「行外」儲存的(乙個單獨的表)

可以;資料儲存在「行內」(在同乙個表中)

未初始化的狀態

空(不能是null),元素是未定義

自動就是null的,元素的引用是非法的

自動就是null的,元素的引用是非法的

初始化在申明時自動完成

通過建構函式,或者賦值,或者fetch操作完成

通過建構函式,或者賦值,或者fetch操作完成

在pl/sql中元素的引用方式

binary_integer以及子型別(-2147483647~2147483647)

varchar2(oracle 9i資料庫r2版本或者更高版本)

1到2147483647間的正整數

是否稀疏

是開始不是,進過刪除後就是了

不是是否有界

無界可以擴充套件

有界可以隨時對任意乙個元素賦值

可以不可以,可以需要先用extend進行擴充套件

不可以,可能需要執行extend進行擴充套件,而且用extend擴充套件時不能超出上邊界

擴充套件的方法

給乙個新下標指向的元素賦值

使用內建的extend過程(或者trim進行壓縮),沒有預定義的最大值

extend(或者trim),但是最大只能到宣告的最大尺寸

可以比較相等與否

不可以可以,要求是oracle資料庫10g或以後的版本

不可以是否可以通過集合操作進行操作

不可以可以,要求是oracle資料10g或者以後的版本

不可以訪問資料石佛會保留順序或者下標

n/a不保留

保留

type table_type_name is table of datatype [ not null ] index by index_type;

variable_name table_type_name ;
create [ or replace ] type type_name as | is table of element_datatype [ not null ];
type type_name is table of element_datatype [ not null ];
create [ or replace ] type type_name as | is table of element_datatype [ not null ];
type type_name is varray (max_elements) of element_datatype [ not null ];
drop type type_name [ force ];
collection_name collection_type [ := collection_type (...) ];
建構函式的名字和型別的名字是相同的,並且接收乙個用逗號分隔的元素列表作為引數。如果宣告的是乙個巢狀變數或者varray變數,在使用這個變數之前必須要先對這個變數進行初始化。

如果兩個集合是基於同乙個集合的型別,那麼就可以通過直接賦值的方式用乙個集合變數給另乙個變數進行初始化。

訪問集合的資料:

未完待續......

複習七(集合)

判斷內容是否存在 集合名.contains 內容 有返回true linkedlist方法 addfirst 內容 新增第乙個內容 addlast 內容 新增最後乙個內容 getfirst 返回列表第乙個元素 getlast 返回列表最後乙個元素 removefirst 刪除第乙個元素 remove...

Redis學習(七) 集合型別(Set)

集合中的每個元素都是不同的,且沒有順序。集合在redis內部是使用值為空的雜湊表實現的。所以向集合中加入 刪除元素 判斷某個元素是否存在的時間複雜度都是o 1 多個集合之間還可以進行交集 並集和差集運算。1.多條件查詢 1.增加 刪除元素 sadd key member member 返回成功加入的...

Apex語言(七)集合

1 集合 2 list列表 list列表集合可以包含任何數量的資料,與陣列類似。1 宣告list集合 格式 list 型別 集合 new list 型別 示例 2 相關操作方法 示例 3 遍歷元素 示例 3 set集合 set列表集合包含多個無序的唯一記錄數,集合不能具有重覆記錄,與列表類似。1 宣...