北大青鳥oracle學習筆記12

2021-05-21 22:39:28 字數 1387 閱讀 6880

關係型資料庫理論中字段值必須是單值,而oracle中允許在乙個欄位中儲存乙個表的內容。

如:員工表中的外來鍵 部門編號,oracle中這個字段可以存放部門的記錄而並不是乙個外來鍵,這樣查詢時候的效率會提高。

可變陣列:

建立帶有可變陣列的表

建立可變陣列基型別

create or replace type 基型別名 as object(字段清單);

建立可變陣列型別

create or replace 可變陣列型別名 as varray(最大行數) of 可變陣列的基型別;

例項:create or replace type mingxitype as object

goodsid varchar(15),

incount int,

providerid varchar(10)

create or replace type arrmingxitype as varray(100) of mingxitype;

建立乙個主表

create table instock

orderid int primary key,

indate date,

mingxi arrmingxitype

利用建構函式插入資料

insert into instock values(

'200208070001',

to_date('2002-08-07','yyyy-mm-dd'),

arrmingxitype(

mingxitype('101',10,'s01'),

mingxitype('102',20,'s02'))查詢

select * from instock;則顯示物件而並不是像關聯式資料庫那樣的表單

select * from table(

select s.mingxi from instock s where orderid = 1001

此時顯示的是可變陣列中的資訊而沒有主表中的資訊。

table函式要求內部子查詢必須明確確定一條記錄!

修改可變陣列比較麻煩,必須修改整個陣列的記錄。所以可變陣列常使用在基本不需要修改的記錄(如歷史記錄等)

update instock set mingxi = arrmingxitype(

mingxitype('101',20,'s01'),

mingxitype('102',30,'s02')

)where orderid = '200208070001';

刪除記錄操作與關係型資料庫一致,刪除整條主記錄。

delete from instock where orderid = '1001';

北大青鳥oracle學習筆記7

oracle表分割槽 oracle允許使用者對錶進行進一步規劃,即對錶進行進一步拆分,將表分成若干個邏輯部分,滅個不妨稱其為表分割槽 範圍分割槽 根據表中列值的範圍進行分割槽 語法 partition by range 欄位名 partition 分割槽名 values less than 60 6...

北大青鳥oracle學習筆記11

簇 有公共列的兩個或多個表的集合 簇表中的資料儲存在公共資料塊中 簇鍵 唯一識別符號 建立簇 減少i o操作,減少磁碟空間,但是插入效能降低。兩張表中有共同的列,比如學生表中有班級編號,班級表中也有班級編號,可以將班級編號存放在簇中 create cluster 簇名 欄位名 型別 tablespa...

北大青鳥oracle學習筆記19 20 21 22

游標 指向上下文區域的控制代碼或指標 游標在伺服器段儲存 屬性 notfound 沒有找到結果或沒有操作成功 found 找到結果或操作成功 rowcount 游標影響的行數 isopen 游標是否開啟 隱式游標系統自動維護,永遠為假 型別 靜態游標 隱式游標 在oracle內部宣告 用於處理dml...