北大青鳥oracle學習筆記11

2021-05-21 22:37:25 字數 1898 閱讀 1723

簇:

有公共列的兩個或多個表的集合

簇表中的資料儲存在公共資料塊中

簇鍵:

唯一識別符號

建立簇:

減少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...