select * from dictionary;
--資料字典
資料字典是Oracle存放有關資料庫資訊的地方,其用途是用來描述資料的。
比如一個表的建立者資訊,建立時間資訊,所屬資料表空間資訊,使用者存取權限資訊等。
資料庫資料字典是一組表和視圖結構。它們存放在SYSTEM資料表空間中
當使用者在對資料庫中的資料進行操作時遇到困難就可以訪問資料字典來查看詳細的資訊。
使用者可以用SQL語句訪問資料庫資料字典。
資料字典內容包括:
1,資料庫中所有模式對象的資訊,如表、視圖、簇、及索引等。
2,分配多少空間,當前使用了多少空間等。
3,列的預設值。
4,約束資訊的完整性。
5,Oracle使用者的名字。
6,使用者及角色被授與權限。
7,使用者訪問或使用的審計資訊。
8,其它產生的資料庫資訊。
Oracle中的資料字典有靜態和動態之分。
1,待用資料字典-->主要是在使用者訪問資料字典時不會發生改變的,
--例如某使用者建立的表
2,動態資料字典-->是依賴資料庫啟動並執行效能的,反映資料庫啟動並執行一些內在資訊,所以在訪問這類資料字典時往往不是一成不變的。
--當前鎖住的對象
待用資料字典:這類資料字典主要是由表和視圖組成
資料字典中的表是不能直接被訪問的,但是可以訪問資料字典中的視圖。
待用資料字典中的視圖分為三類,它們分別由三個首碼夠成:user_*、 all_*、 dba_*。
user_*
該視圖儲存了關於目前使用者所擁有的對象的資訊。(即所有在該使用者模式下的對象)
all_*
該試圖儲存了目前使用者能夠訪問的對象的資訊。(與user_*相比,all_* 並不需要擁有該對象,只需要具有訪問該對象的許可權即可)
dba_*
該視圖儲存了資料庫中所有對象的資訊。(前提是目前使用者具有訪問這些資料庫的許可權,一般來說必須具有管理員權限)
-----------------------------------------------------------------------------------------------------------
select * from dictionary;
--查詢該使用者擁有哪些表
--user_tables主要描述目前使用者擁有的所有表的資訊,
----主要包括表名、資料表空間名、簇名等。通過此視圖可以清楚瞭解目前使用者可以操作的表有哪些
desc user_tables;
select table_name from user_tables;
select * from user_tables;
--查詢該使用者擁有哪些索引
select index_name from user_indexes;
--查詢該使用者擁有哪些視圖
select view_name from user_views;
--查詢該使用者擁有哪些資料庫物件,對象包括表、視圖、預存程序、觸發器、包、索引、序列、JAVA檔案等。
select object_name from user_objects;
--主要描述目前使用者的資訊,主要包括目前使用者名、帳戶id、帳戶狀態、資料表空間名、建立時間等。
select * from user_users;
-----------------------------------------------------------------------------------------------------------
--user_/all_區別:
----all_列出來的資訊是目前使用者可以訪問的對象而不是目前使用者擁有的對象。
--查詢某一使用者下的所有表、過程、函數等資訊。
select owner , object_name ,object_type from all_objects
-----------------------------------------------------------------------------------------------------------
--對於dba_開頭的需要管理員權限,
--查詢資料表空間的資訊(目前使用者必須擁有DBA角色)。
select * from dba_data_files
-----------------------------------------------------------------------------------------------------------
動態資料字典
Oracle包含了一些潛在的由系統管理員如SYS維護的表和視圖,由於當資料庫啟動並執行時候它們會不斷進行更新,所以稱它們為動態資料字典(或者是動態效能檢視)。這些視圖提供了關於記憶體和磁碟的運行情況,所以我們只能對其進行唯讀訪問而不能修改它們。
Oracle中這些動態效能檢視都是以v$開頭的視圖.
v$access
該視圖顯示資料庫中鎖定的資料庫物件以及訪問這些對象的會話對象(session對象)。
select * from v$access
v$session
該視圖列出當前會話的詳細資料。
v$active_instance
該視圖主要描述當前資料庫下的活動的執行個體的資訊。依然可以使用select語句來觀察該資訊。
v$context
該視圖列出當前會話的屬性資訊。比如命名空間、屬性值等