發(fā)布日期:2023-03-31來源:武漢北大青鳥武漢校區(qū)作者:武漢北大青鳥
武漢北大青鳥光谷校區(qū)教員老師希望學子們在學習過程中將自己的心得感受記錄下來作為以后查閱的參考,下面是一位青鳥學子在學習oracle培訓課程中的學習總結(jié),給同學們參考借鑒。
簇:
有公共列的兩個或多個表的集合
簇表中的數(shù)據(jù)存儲在公共數(shù)據(jù)塊中
簇鍵:
標識符
創(chuàng)建簇:
減少I/O操作,減少磁盤空間,但是插入性能降低。
兩張表中有共同的列,比如學生表中有班級編號,班級表中也有班級編號,可以將班級編號存放在簇中
create cluster 簇名(
字段名 類型
)tablespace 表命名空間;
create index 索引名 on cluster 簇名;
create table 表名1 (
字段名 類型
) cluster 簇名(簇中字段名);
create table 表名2(
字段名 類型
)cluster 簇名(簇中字段名);
oracle對象數(shù)據(jù)類型:
抽象數(shù)據(jù)類型:
包含一個或多個子類型的數(shù)據(jù)類型
不局限于oracle的標準數(shù)據(jù)類型
可以用于其他數(shù)據(jù)類型中
語法: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);
插入數(shù)據(jù)
insert into studentobj values('Tom',addresstype('吉林省','長春','前進大街'));
查詢數(shù)據(jù)
select * from studentobj;
結(jié)果為 Tom
addresstype('吉林省','長春','前進大街')
select s.stuname,s.stuaddress.province,s.stuaddress.city from studentobj s;-- 必須使用別名
這樣查詢就查詢出平時分列的數(shù)據(jù)。更新也是如此。
如果需要擴展則添加not final
擴展新類型:create type 子類型 under 父類型(
擴展新屬性...
);
基于類型可以創(chuàng)建對象表:
create table 表名 of 類型名;
即可和關系表一樣使用。
也可以使用對象的構造函數(shù)來插入數(shù)據(jù)
insert into 對象表名 values (類型名(參數(shù)...)); -- 插入實例
更新也可以使用直接更新和構造函數(shù)更新兩種方法。
創(chuàng)建帶有方法的對象類型
create [or replace] type 類型名 as object(
--聲明屬性
stuid varchar(10),
stuname varchar(10),
--聲明方法
member function getName return stuname,
member procedure setName(varchar stuname)
)
具體等之后的教程
通過oracle的繼承可以發(fā)現(xiàn)方便了不少,以前那些學生表,教師表在創(chuàng)建的時候都要重復定義姓名、性別、出生年月等字段,現(xiàn)在可以通過oracle的對象繼承來實現(xiàn)。
武漢北大青鳥光谷校區(qū)學子每一位都非常,也希望他們能夠保持這種的姿態(tài)延續(xù)到工作中。
Copyright (c) 2006-2023 武漢宏鵬教育咨詢有限公司 版權所有 All Rights Reserved.