1、数据字典的功能
数据字典记载了数据的系统信息,它是只读表和视图的集合。
数据字典的所有者为sys用户,并且其被保存放在SYSTEM表空间里。
2、数据字典的概念
数据字典包括数据字典基表和数据字典视图两部分,其中,基表存储数据库的基本信息,普通用户不能直接访问数据字典基表;数据字典视图是基于数据字典基表建立的视图,普通用户可以通过查询数据字典视图取得系统信息。数据字典视图主要包括USER_XXX、ALL_XXX、DBA_XXX。
3、常用数据字典
(1)DICT
用于显示当前用户可访问的所有数据字典视图,并给出这些数据字典的用途
04:23:22 SQL> select table_name,comments from dict
04:23:41 2 where comments like '%grants%';
TABLE_NAME COMMENTS
------------------------------ ----------------------------------------
USER_COL_PRIVS_MADE All grants on columns of objects owned b
y the user
USER_TAB_PRIVS_MADE All grants on objects owned by the user
ALL_TAB_PRIVS_MADE User's grants and grants on user's objec
ts
(2)DUAL
用于返回函数的值
04:26:39 SQL> select sysdate from dual;
SYSDATE
-------------------
2011-02-19 04:26:41
04:26:41 SQL> select user from dual;
USER
------------------------------
SCOTT
04:26:47 SQL> select 4/2 from dual;
4/2
----------
2
(3)IND
用于显示当前用户所拥有的所有索引和索引统计信息
04:31:45 SQL> col index_type for a10
04:31:52 SQL> col uniqueness for a10
04:32:04 SQL> col index_name for a10
04:32:07 SQL> select index_name,index_type,uniqueness
04:32:32 2 from ind where table_name='EMP';
INDEX_NAME INDEX_TYPE UNIQUENESS
---------- ---------- ----------
PK_EMP NORMAL UNIQUE
04:32:49 SQL> select index_name,index_type,uniqueness
04:32:56 2 from ind where table_name='DEPT';
INDEX_NAME INDEX_TYPE UNIQUENESS
---------- ---------- ----------
PK_DEPT NORMAL UNIQUE
(4)OBJ
用于显示当前用户所拥有的所有对象
04:35:51 SQL> select object_name ,object_type,object_id ,created from obj
04:36:08 2 order by 2;
OBJECT_NAME OBJECT_TYPE OBJECT_ID CREATED
--------------- ------------------- ---------- -------------------
PK_DEPT INDEX 51147 2005-06-30 19:47:57
PK_EMP INDEX 51149 2005-06-30 19:47:57
GET_EMP_REC PROCEDURE 52534 2011-02-12 06:27:15
SALGRADE TABLE 51151 2005-06-30 19:47:57
QUEST_SL_TEMP_E TABLE 52515 2011-01-29 14:55:05
XPLAIN1
LOGTABLE TABLE 52546 2011-02-12 07:47:29
EMP TABLE 51148 2005-06-30 19:47:57
DEPT TABLE 51146 2005-06-30 19:47:57
BONUS TABLE 51150 2005-06-30 19:47:57
9 rows selected.
(5)SEQ
拥有显示当前用户所拥有的所有序列
04:38:06 SQL> select sequence_name,increment_by from seq;
no rows selected
(6)SYN
用于显示当前用户所拥有的同义词和同义词所对应的数据库对象名。
04:39:46 SQL> col synonym_name for a15
04:40:15 SQL> col owner_object for a15
04:40:27 SQL> select synonym_name,table_owner ||','|| table_name
04:40:55 2 owner_object from syn;
no rows selected
用于显示当前用户所拥有的表、视图和序列。
04:42:17 SQL> select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
DEPT TABLE
EMP TABLE
BONUS TABLE
SALGRADE TABLE
QUEST_SL_TEMP_EXPLAIN1 TABLE
LOGTABLE TABLE
6 rows selected.