在資料庫系統中,有些資料表或者檢視表會記錄整個資料庫相關資料,

可能包含資料表資訊、檢視表資訊等目前資料庫的狀態。



早期只顧開發的我,其實也不太會去在意這些資料表,

當專案開始,規劃功能與資料表後,按照關聯性資料庫的規則,作一點正規化,

符合功能需求的資料庫就開始運作了,然後就開始顧著開發功能。

但隨著接觸不同的維護案後,許多問題必須去了解資料庫發生甚麼事情,

漸漸的這些有關資料表、檢視表等資料庫目前狀態的資訊就越來越重要。

在oracle 資料庫中,Data Dictionary View屬於唯讀的資訊,它包含了:

1.定義所有資料庫物件(table,view,index..等)

2.每個欄位的預設值

3.完整的限制資訊

4.oracle使用者的姓名

5.角色與權限內容

6.其他依班資料庫資訊

Data Dictionary View 命名說明如下:

1.USER:使用者的檢視表,包含該使用者可以看到的屬於自己的資料物件

2.ALL:使用者有權限可以看到的資料物件

3.DBA:資料庫管理者可以讀取的資料,包含所有使用者的物件

4.V$:校能相關的資料

觀看Dictionary描述:
DESCRIBE DICTIONARY




查看USER_OBJECT相關語法



對使用者而言,有用的回傳的資料包含,物件名稱、類型、產生資料日期、最後修改日期與驗證狀態

類型可以讓我們知道這個物件是index, table還是trigger...等



查看資料表相關資訊

DESCRIBE user_tables




查看資料欄相關資訊

DESCRIBE  user_tab_columns




查看資料限制相關資訊

DESCRIBE  USER_CONSTRAINTS

DESCRIBE  USER_CONS_COLUMNS




限制中,有個conition的欄位:

C: check constraints on table

P: private key

U: unique key

R: referential integrity

V: with check option, on view

O: read only, on view

限制中,有個delet_rule欄位:

cascade: 父項資料被刪除,子項資料也會被刪除

no action: 當子項沒資料的時候,父項才可以刪除

限制中,有個status欄位

ENABLED: 限制有作用

DISABLED: 限制無作用

查詢檢視表相關資訊

DESCRIBE user_views




若要觀看檢視表相關資料,必須使用text欄位

select text from user_view where view_name = 'USER_TEST_VIEW'


但他只能顯示前80個字元,若要看完整的內容,可以先設定LONG

SET LONG 1000


查詢SEQUENCE

DESCRIBE user_sequences




查詢synonyms

DESCRIBE user_synonyms




增加commentY在資料表或欄位上

comment on table user_table is 'comment test'


如果要移除comment,給予' '即可

comment on table user_table is ' '