iT邦幫忙

DAY 12
0

ORACLE 管理與系統開發運用學習日記系列 第 12

12.SQL語法IV: Database Object

  • 分享至 

  • xImage
  •  

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

--

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


上一篇
11.SQL語法III:join
下一篇
13. SQL語法V: Data Dictionary View
系列文
ORACLE 管理與系統開發運用學習日記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言