首页 > 数据库 > Oracle的数据字典

Oracle的数据字典

2008年12月3日

以前用数据库几乎没有数据字典这个概念,但是在Oracle中,这是一个非常重要的概念,它包含了

  • 数据库中所有方案对象(schema object)的定义(包括表,视图,索引,簇,同义词,序列,过程,函数,包,触发器等等)
  • 数据库为一个方案对象分配了多少空间,以及该对象当前使用了多少空间
  • 列的默认值
  • 完整性约束(integrity constraint)信息
  • 数据库用户名
  • 每个用户被授予(grant)的权限(privilege)与角色(role)
  • 监控(audit)信息,例如哪个用户对某个方案对象进行了访问或更新操作
  • 数据库中的其他概要信息

可以这么说,Oracle的数据字典,相当与XML的Schema,Schema定义了XML的具体结构,数据字典定义了数据库里面的各种结构,比如有哪些表,表的约束有哪些,等等。

现在,如果我想查看我用了哪些约束,思路应该是,约束–constrai…

于是我查 select * from dictionary where table_name like ‘%CONSTR%’; 注意,这里的dictionary就是数据字典,里面包含了大量定义数据库的表格,结果为:

TABLE_NAME                       COMMENTS ——————————————————————————–
USER_CONSTRAINTS               Constraint definitions on user’s own tables
ALL_CONSTRAINTS                Constraint definitions on accessible tables

于是我知道,USER_CONSTRAINTS里面含有我所登陆的用户的约束信息

继续查: select * from USER_CONSTRAINTS;

出来的结果就是一些主键、是否为空、外键等等信息了。

值得注意的是USER_CONSTRAINTS其实是SYS内建的视图,权限是大家都可以访问,想看USER_CONSTRAINTS是如何定义的吗?呵呵,还是用刚才的思路,查:select * from dictionary where table_name like ‘%VIEWS%’; 可以找到

USER_VIEWS                     Description of the user’s own views
ALL_VIEWS                      Description of views accessible to the user
ALL_MVIEWS                     All materialized views in the database
USER_MVIEWS                    All materialized views in the database
ALL_BASE_TABLE_MVIEWS          All materialized views with log(s) in the database that the user can see
USER_BASE_TABLE_MVIEWS         All materialized views with log(s) owned by the user in the database
ALL_REGISTERED_MVIEWS          Remote materialized views of local tables that the user can see
USER_REGISTERED_MVIEWS         Remote materialized views of local tables currently using logs owned by the user
ALL_XML_VIEWS                  Description of the all XMLType views that the user has privileges on
USER_XML_VIEWS                 Description of the user’s own XMLType views

这里当然是用ALL_VIEWS ,继续看看ALL_VIEWS 的结构,desc ALL_VIEWS ;

Name             Type           Nullable Default Comments
—————- ————– ——– ——- ———————————————————–
OWNER            VARCHAR2(30)                    Owner of the view
VIEW_NAME        VARCHAR2(30)                    Name of the view
TEXT_LENGTH      NUMBER         Y                Length of the view text
TEXT             LONG           Y                View text
TYPE_TEXT_LENGTH NUMBER         Y                Length of the type clause of the object view
TYPE_TEXT        VARCHAR2(4000) Y                Type clause of the object view
OID_TEXT_LENGTH  NUMBER         Y                Length of the WITH OBJECT OID clause of the object view
OID_TEXT         VARCHAR2(4000) Y                WITH OBJECT OID clause of the object view
VIEW_TYPE_OWNER  VARCHAR2(30)   Y                Owner of the type of the view if the view is an object view
VIEW_TYPE        VARCHAR2(30)   Y                Type of the view if the view is an object view
SUPERVIEW_NAME   VARCHAR2(30)   Y                Name of the superview, if view is a subview

好了,接着输出TEXT就可以看到了

数据库 ,

  1. 目前还没有任何评论.
  1. 目前还没有任何 trackbacks 和 pingbacks.