簇:
有公共列的兩個或多個表的集合
簇表中的資料儲存在公共資料塊中
簇鍵:
唯一識別符號
建立簇:
減少i/o操作,減少磁碟空間,但是插入效能降低。
兩張表中有共同的列,比如學生表中有班級編號,班級表中也有班級編號,可以將班級編號存放在簇中
create cluster 簇名(
欄位名 型別
)tablespace 表命名空間;
create index 索引名 on cluster 簇名;
create table 表名1 (
欄位名 型別
) cluster 簇名(簇中欄位名);
create table 表名2(
欄位名 型別
)cluster 簇名(簇中欄位名);
oracle物件資料型別:
抽象資料型別:
包含乙個或多個子型別的資料型別
不侷限於oracle的標準資料型別
可以用於其他資料型別中
語法:create [or replace] type 型別名 as object(列名 型別,...)[not final];
not final 關鍵字限制派生子型別。
如:create type addresstype as object(
province varchar(20),
city varchar(30),
street varchar(40)
在建表時即可使用自定義的addresstype型別
create table studentobj(stuname varchar(18),stuaddress addresstype);
插入資料
insert into studentobj values('tom',addresstype('吉林省','長春','前進大街'));
查詢資料
select * from studentobj;
結果為 tom
addresstype('吉林省','長春','前進大街')
select s.stuname,s.stuaddress.province,s.stuaddress.city from studentobj s;-- 必須使用別名
這樣查詢就查詢出平時分列的資料。更新也是如此。
如果需要擴充套件則新增not final
擴充套件新型別:create type 子型別 under 父型別(
擴充套件新屬性...
);基於型別可以建立物件表:
create table 表名 of 型別名;
即可和關係表一樣使用。
也可以使用物件的建構函式來插入資料
insert
into
物件表名
values
(型別名(引數...));
-- 插入例項
更新也可以使用直接更新和建構函式更新兩種方法。
建立帶有方法的物件型別
create [or replace] type 型別名 as object(
--宣告屬性
stuid varchar(10),
stuname varchar(10),
--宣告方法
member function getname return stuname,
member procedure setname(varchar stuname)
具體等之後的教程
通過oracle的繼承可以發現方便了不少,以前那些學生表,教師表在建立的時候都要重複定義姓名、性別、出生年月等字段,現在可以通過oracle的物件繼承來實現。
北大青鳥oracle學習筆記7
oracle表分割槽 oracle允許使用者對錶進行進一步規劃,即對錶進行進一步拆分,將表分成若干個邏輯部分,滅個不妨稱其為表分割槽 範圍分割槽 根據表中列值的範圍進行分割槽 語法 partition by range 欄位名 partition 分割槽名 values less than 60 6...
北大青鳥oracle學習筆記12
關係型資料庫理論中字段值必須是單值,而oracle中允許在乙個欄位中儲存乙個表的內容。如 員工表中的外來鍵 部門編號,oracle中這個字段可以存放部門的記錄而並不是乙個外來鍵,這樣查詢時候的效率會提高。可變陣列 建立帶有可變陣列的表 建立可變陣列基型別 create or replace type...
北大青鳥oracle學習筆記19 20 21 22
游標 指向上下文區域的控制代碼或指標 游標在伺服器段儲存 屬性 notfound 沒有找到結果或沒有操作成功 found 找到結果或操作成功 rowcount 游標影響的行數 isopen 游標是否開啟 隱式游標系統自動維護,永遠為假 型別 靜態游標 隱式游標 在oracle內部宣告 用於處理dml...