關係型資料庫理論中字段值必須是單值,而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...