「iThome 第七屆鐵人賽 12」SQL語法IV: Database Object

熱門文章 (Popular Post)

Posted by : Duran Hsieh 1月 06, 2015


資料庫物件,包含我們操作的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


--

第十二天了!! 怎麼跟當兵數日子這麼像!!



Leave a Reply

Subscribe to Posts | Subscribe to Comments

- Copyright © Duran Hsieh @ Matsurigoto - Date A Live - Powered by Blogger - Designed by Johanes Djogan -