国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
oracle 數(shù)據(jù)字典入門經(jīng)典
oracle 數(shù)據(jù)字典入門經(jīng)典
2009年02月19日 星期四 10:00
數(shù)據(jù)字典是Oracle存放有關(guān)數(shù)據(jù)庫信息的地方,其用途是用來描述數(shù)據(jù)的。比如一個表的創(chuàng)建者信息,創(chuàng)建時間信息,所屬表空間信息,用戶訪問權(quán)限信息等。當用戶在對數(shù)據(jù)庫中的數(shù)據(jù)進行操作時遇到困難就可以訪問數(shù)據(jù)字典來查看詳細的信息。

  Oracle中的數(shù)據(jù)字典有靜態(tài)和動態(tài)之分。靜態(tài)數(shù)據(jù)字典主要是在用戶訪問數(shù)據(jù)字典時不會發(fā)生改變的,但動態(tài)數(shù)據(jù)字典是依賴數(shù)據(jù)庫運行的性能的,反映數(shù)據(jù)庫運行的一些內(nèi)在信息,所以在訪問這類數(shù)據(jù)字典時往往不是一成不變的。以下分別就這兩類數(shù)據(jù)字典來論述。

1. 靜態(tài)數(shù)據(jù)字典

這數(shù)據(jù)字典主要是由表和視圖組成,應(yīng)該注意的是,數(shù)據(jù)字典中的表是不能直接被訪問的,但是可以訪問數(shù)據(jù)字典中的視圖。靜態(tài)數(shù)據(jù)字典中的視圖分為三類,它們分別由三個前綴夠成:user_*、 all_*、 dba_*。

  user_*

  該視圖存儲了關(guān)于當前用戶所擁有的對象的信息。(即所有在該用戶模式下的對象)

  all_*

  該試圖存儲了當前用戶能夠訪問的對象的信息。(與user_*相比,all_* 并不需要擁有該對象,只需要具有訪問該對象的權(quán)限即可)

  dba_*

該視圖存儲了數(shù)據(jù)庫中所有對象的信息。(前提是當前用戶具有訪問這些數(shù)據(jù)庫的權(quán)限,一般來說必須具有管理員權(quán)限)

  從上面的描述可以看出,三者之間存儲的數(shù)據(jù)肯定會有重疊,其實它們除了訪問范圍的不同以外(因為權(quán)限不一樣,所以訪問對象的范圍不一樣),其他均具有一致性。具體來說,由于數(shù)據(jù)字典視圖是由SYS(系統(tǒng)用戶)所擁有的,所以在卻省情況下,只有SYS和擁有DBA系統(tǒng)權(quán)限的用戶可以看到所有的視圖。沒有DBA權(quán)限的用戶只能看到user_*和all_*視。如果沒有被授予相關(guān)的SELECT權(quán)限的話,他們是不能看到 dba_*視圖的。

  由于三者具有相似性,下面以user_為例介紹幾個常用的靜態(tài)視圖:

  user_users視圖

  主要描述當前用戶的信息,主要包括當前用戶名、帳戶id、帳戶狀態(tài)、表空間名、創(chuàng)建時間等。例如執(zhí)行下列命令即可返回這些信息。
select * from user_users

  user_tables視圖

  主要描述當前用戶擁有的所有表的信息,主要包括表名、表空間名、簇名等。通過此視圖可以清楚了解當前用戶可以操作的表有哪些。執(zhí)行命令為:select * from user_tables

  user_objects視圖

  主要描述當前用戶擁有的所有對象的信息,對象包括表、視圖、存儲過程、觸發(fā)器、包、索引、序列等。該視圖比user_tables視圖更加全面。例如, 需要獲取一個名為“package1”的對象類型和其狀態(tài)的信息,可以執(zhí)行下面命令:

select object_type,status
from user_objects
where object_name=upper(‘package1’);

  這里需注意upper的使用,數(shù)據(jù)字典里的所有對象均為大寫形式,而PL/SQL里不是大小寫敏感的,所以在實際操作中一定要注意大小寫匹配。

  user_tab_privs視圖

  該視圖主要是存儲當前用戶下對所有表的權(quán)限信息。比如,為了了解當前用戶對table1的權(quán)限信息,可以執(zhí)行如下命令:

select * from user_tab_privs where table_name=upper('table1')



  了解了當前用戶對該表的權(quán)限之后就可以清楚的知道,哪些操作可以執(zhí)行,哪些操作不能執(zhí)行。

  前面的視圖均為user_開頭的,其實all_開頭的也完全是一樣的,只是列出來的信息是當前用戶可以訪問的對象而不是當前用戶擁有的對象。對于dba_開頭的需要管理員權(quán)限,其他用法也完全一樣,這里就不再贅述了。

  2. 動態(tài)數(shù)據(jù)字典

  Oracle包含了一些潛在的由系統(tǒng)管理員如SYS維護的表和視圖,由于當數(shù)據(jù)庫運行的時候它們會不斷進行更新,所以稱它們?yōu)閯討B(tài)數(shù)據(jù)字典(或者是動態(tài)性能視圖)。這些視圖提供了關(guān)于內(nèi)存和磁盤的運行情況,所以我們只能對其進行只讀訪問而不能修改它們。

  Oracle中這些動態(tài)性能視圖都是以v$開頭的視圖,比如v$access。下面就幾個主要的動態(tài)性能視圖進行介紹。

  v$access

  該視圖顯示數(shù)據(jù)庫中鎖定的數(shù)據(jù)庫對象以及訪問這些對象的會話對象(session對象)。

  運行如下命令:



select * from v$access



  結(jié)果如下:(因記錄較多,故這里只是節(jié)選了部分記錄)



SID
OWNER OBJECT TYPE
27 DKH V$ACCESS CURSOR
27 PUBLIC V$ACCESS SYNONYM
27 SYS DBMS_APPLICATION_INFO PACKAGE
27 SYS GV$ACCESS VIEW



  v$session

  該視圖列出當前會話的詳細信息。由于該視圖字段較多,這里就不列詳細字段,為了解詳細信息,可以直接在sql*plus命令行下鍵入:desc v$session即可。

  v$active_instance

  該視圖主要描述當前數(shù)據(jù)庫下的活動的實例的信息。依然可以使用select語句來觀察該信息。

  v$context

  該視圖列出當前會話的屬性信息。比如命名空間、屬性值等。



查看當前用戶的缺省表空間

  SQL>select username,default_tablespace from user_users;

  查看當前用戶的角色

  SQL>select * from user_role_privs;

  查看當前用戶的系統(tǒng)權(quán)限和表級權(quán)限

  SQL>select * from user_sys_privs;

  SQL>select * from user_tab_privs;

  查看用戶下所有的表

  SQL>select * from user_tables;

  顯示用戶信息(所屬表空間)

  select default_tablespace,temporary_tablespace

  from dba_users where username='GAME';

  1、用戶

  查看當前用戶的缺省表空間

  SQL>select username,default_tablespace from user_users;

  查看當前用戶的角色

  SQL>select * from user_role_privs;

  查看當前用戶的系統(tǒng)權(quán)限和表級權(quán)限

  SQL>select * from user_sys_privs;

  SQL>select * from user_tab_privs;

  顯示當前會話所具有的權(quán)限

  SQL>select * from session_privs;

  顯示指定用戶所具有的系統(tǒng)權(quán)限

  SQL>select * from dba_sys_privs where grantee='GAME';

  顯示特權(quán)用戶

  select * from v$pwfile_users;

  顯示用戶信息(所屬表空間)

  select default_tablespace,temporary_tablespace

  from dba_users where username='GAME';

  顯示用戶的PROFILE

  select profile from dba_users where username='GAME';

  

  2、表

  查看用戶下所有的表

  SQL>select * from user_tables;

  查看名稱包含log字符的表

  SQL>select object_name,object_id from user_objects

  where instr(object_name,'LOG')>0;

  查看某表的創(chuàng)建時間

  SQL>select object_name,created from user_objects where object_name=upper('&table_name');

  查看某表的大小

  SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments

  where segment_name=upper('&table_name');

  查看放在Oracle的內(nèi)存區(qū)里的表

  SQL>select table_name,cache from user_tables where instr(cache,'Y')>0;

  3、索引

  查看索引個數(shù)和類別

  SQL>select index_name,index_type,table_name from user_indexes order by table_name;

  查看索引被索引的字段

  SQL>select * from user_ind_columns where index_name=upper('&index_name');

  查看索引的大小

  SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments

  where segment_name=upper('&index_name');

  4、序列號

  查看序列號,last_number是當前值

  SQL>select * from user_sequences;

  5、視圖

  查看視圖的名稱

  SQL>select view_name from user_views;

  查看創(chuàng)建視圖的select語句

  SQL>set view_name,text_length from user_views;

  SQL>set long 2000; 說明:可以根據(jù)視圖的text_length值設(shè)定set long 的大小

  SQL>select text from user_views where view_name=upper('&view_name');

  6、同義詞

  查看同義詞的名稱

  SQL>select * from user_synonyms;

  7、約束條件

  查看某表的約束條件

  SQL>select constraint_name, constraint_type,search_condition, r_constraint_name

  from user_constraints where table_name = upper('&table_name');

  SQL>select c.constraint_name,c.constraint_type,cc.column_name

  from user_constraints c,user_cons_columns cc

  where c.owner = upper('&table_owner') and c.table_name = upper('&table_name')

  and c.owner = cc.owner and c.constraint_name = cc.constraint_name

  order by cc.position;

  8、存儲函數(shù)和過程

  查看函數(shù)和過程的狀態(tài)

  SQL>select object_name,status from user_objects where object_type='FUNCTION';

  SQL>select object_name,status from user_objects where object_type='PROCEDURE';

  查看函數(shù)和過程的源代碼

  SQL>select text from all_source where owner=user and name=upper('&plsql_name');



  3.小結(jié)

  以上是Oracle的數(shù)據(jù)字典方面的基本內(nèi)容,還有很多有用視圖因為篇幅原因這里不能一一講解,希望大家在平時使用中多留心??傊?,運用好數(shù)據(jù)字典技術(shù),可以讓數(shù)據(jù)庫開發(fā)人員能夠更好的了解數(shù)據(jù)庫的全貌,這樣對于數(shù)據(jù)庫優(yōu)化、管理等有極大的幫助
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Oracle字段詳細信息
oracle 數(shù)據(jù)字典
用戶如何有效地利用數(shù)據(jù)字典
從視圖看Oracle對象依賴機制(轉(zhuǎn))
什么是Oracle的數(shù)據(jù)字典?
oracle數(shù)據(jù)字典的字典表、視圖、同義詞關(guān)系簡述 - 建站學(xué)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服