資料庫物件,包含我們操作的table(資料表),還有就是index(索引)、view(檢視表或縱觀表),在oracle 資料庫中,還有sequence(序數)與synonym(同義字)。這些資料庫物件各有各的用途:如適當的建立所索引能曾增資料表查詢效率、檢視表能依照需要呈現不同的資料...等。在資料庫管理與系統開發的過程中,熟悉這些資料物件是非常重要的課題。
----------------------------------- 我是分隔線 -----------------------------------
這些資料庫物件各有功能與特色,我們將在這篇簡單介紹這些物件:
1.table
資料庫儲存資料的基本單位,這個應該不用多說,在資料庫操作的內容多半是資料表。
2.index
用來增加查詢校能。對於部分欄位增加索引,有效提升資料庫查詢速度。
index可以分成幾種:
一、unique index
二、nonunique index
建立索引的方法
CREATE INDEX user_id_idx
on usertable(user_id)
移除索引方法
drop index user_id_idx
不建議建立索引:
一、不常用(常長被查詢的條件)的欄位
二、資料表太小
三、資料表常常update
3.view
由一個或多個資料表,依據邏輯而呈現的出現的資料檢視表。
一般來說,也可以避免其他資料取得者得知資料庫schema。
優點是能使用相同的資料表,組裝出不同資料;讓資料更加獨立;讓複雜的資料邏輯簡化。
建立view
Create (or replace) view empview
as select user_name, user_address
from usertable
where user_id = '150'
使用check option限制使用者更改內容
Create (or replace) view empview
as select user_name, user_address
from usertable
where user_id = '150'
with check option constraint use empview_ck
Create (or replace) view empview
as select user_name, user_address
from usertable
where user_id = '150'
with read only
移除view
drop view empview
4.sequence
由循序的數字排序而組成,可以用來計算次數。
在SQL Server中,我們可以使用資料表欄位設定遞增數值,而在oracle,則是使用sequence。
因為有唯一性,所以可以用來當作PK使用
建立sequence
create SEQUENCE sequence1
[INCREATE BY n]
[START WITH n]
[{MAXVALUE n | NOMAXVALUE}]
[{MINVALUE | NOMINVALUE}]
[{CYCLE|NOCYCLE}]
[{CACHE n | NOCACHE}]
NEXTVAL 回傳sequence下一個循序的數值
CURRVAL 回傳sequence目前循序的數值
檢查目前sequence
SELECT dept_id_seq, CURRVAL
from dual
修改sequence
ALTER SEQUENCE dept_id_seq
INCEREMENT BY 20
MAXVALUE 999999
NOCACHE
NOCYCLE
刪除seqence
drop DEQUENCE dept_id_deq
5.synonym
同義字,替代其他資料庫物件的名稱。
建立與刪除同義字
CREATE [PUBLIC] SYNONYM synonym1
for object
CREATE SYNONTM d_sum
for dept_sum_vu
DROP SYNONYM d_sum
--
第十二天了!! 怎麼跟當兵數日子這麼像!!