管理对象与数据字典

数据字典视图:sql

DICTIONARY数据库

USER_OBJECTSsession

USER_TABLES性能

USER_TAB_COLUMNS命令行

……对象

数据字典结构:索引

基表内存

用户可访问的视图io

视图前缀 含义table

USER            用户视图(本身拥有的,本身方案下的) 

ALL 扩展的用户视图(在USER_的基础上,用户有权访问的)

DBA 数据库管理员视图(全部方案下的)

V$ 动态性能视图(能够理解为内存中的信息)

中缀 COL TAB CONS ……

后缀 CONSTRAINTS  COLUMNS  VIEW ……

USER_CONSTRAINTS查询用户下的约束

USER_CONS_COLUMNS查询用户下的约束和在哪些列上

数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的。好比一个表的建立者信息,建立时间信息,所属表空间信息,用户访问权限信息等。当用户在对数据库中的数据进行操做时遇到困难就能够访问数据字典来查看详细的信息。
  Oracle中的数据字典有静态和动态之分。静态数据字典主要是在用户访问数据字典时不会发生改变的,但动态数据字典是依赖数据库运行的性能的,反映数据库运行的一些内在信息,因此在访问这类数据字典时每每不是一成不变的。如下分别就这两类数据字典来论述。
1. 静态数据字典
  这类数据字典主要是由表和视图组成,应该注意的是,数据字典中的表是不能直接被访问的,可是能够访问数据字典中的视图。静态数据字典中的视图分为三类,它们分别由三个前缀够成:user_*、 all_*、 dba_*。
  user_*
    该视图存储了关于当前用户所拥有的对象的信息。(即全部在该用户模式下的对象)

  all_*
    该试图存储了当前用户可以访问的对象的信息。(与user_*相比,all_* 并不须要拥有该对象,只须要具备访问该对象的权限便可)

  dba_*
    该视图存储了数据库中全部对象的信息。(前提是当前用户具备访问这些数据库的权限,通常来讲必须具备管理员权限)
  从上面的描述能够看出,三者之间存储的数据确定会有重叠,其实它们除了访问范围的不一样之外(由于权限不同,因此访问对象的范围不同),其余均具备一致性。具体来讲,因为数据字典视图是由SYS(系统用户)所拥有的,因此在却省状况下,只有SYS和拥有DBA系统权限的用户能够看到全部的视图。没有DBA权限的用户只能看到user_*和all_*视。若是没有被授予相关的SELECT权限的话,他们是不能看到 dba_*视图的。

user_users视图
    主要描述当前用户的信息,主要包括当前用户名、账户id、账户状态、表空间名、建立时间等。例如执行下列命令便可返回这些信息。
  select * from user_users
  user_tables视图
    主要描述当前用户拥有的全部表的信息,主要包括表名、表空间名、簇名等。经过此视图能够清楚了解当前用户能够操做的表有哪些。执行命令为:select * from user_tables
  user_objects视图
    主要描述当前用户拥有的全部对象的信息,对象包括表、视图、存储过程、触发器、包、索引、序列等。该视图比user_tables视图更加全面。例如, 须要获取一个名为“package1”的对象类型和其状态的信息,能够执行下面命令:

  select object_type,status
  from user_objects
  where object_name=upper(‘package1’);
注意:upper的使用,数据字典里的全部对象均为大写形式,而PL/SQL里不是大小写敏感的,因此在实际操做中必定要注意大小写匹配。
  user_tab_privs视图
    该视图主要是存储当前用户下对全部表的权限信息。好比,为了了解当前用户对table1的权限信息,能够执行以下命令:

  select * from user_tab_privs where table_name=upper('table1')
  了解了当前用户对该表的权限以后就能够清楚的知道,哪些操做能够执行,哪些操做不能执行。
  前面的视图均为user_开头的,其实all_开头的也彻底是同样的,只是列出来的信息是当前用户能够访问的对象而不是当前用户拥有的对象。对于dba_开头的须要管理员权限,其余用法也彻底同样,这里就再也不赘述了。

  2. 动态数据字典
  Oracle包含了一些潜在的由系统管理员如SYS维护的表和视图,因为当数据库运行的时候它们会不断进行更新,因此称它们为动态数据字典(或者是动态性能视图)。这些视图提供了关于内存和磁盘的运行状况,因此咱们只能对其进行只读访问而不能修改它们。
  Oracle中这些动态性能视图都是以v$开头的视图,好比v$access。下面就几个主要的动态性能视图进行介绍。
  v$access
    该视图显示数据库中锁定的数据库对象以及访问这些对象的会话对象(session对象)。
  运行以下命令:
    select * from v$access
  结果以下:(因记录较多,故这里只是节选了部分记录)

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
    该视图主要描述当前数据库下的活动的实例的信息。依然可使用select语句来观察该信息。
  v$context
    该视图列出当前会话的属性信息。好比命名空间、属性值等。

 

SELECT * FROM DICTIONARY WHERE TABLE_NAME LIKE ‘USER\_%’ ESCAPE ‘\’;

查询数据库里都有哪些USER开头的数据字典

SELECT VIEW_NAME FROM USER_VIEWS;查询用户下全部视图的试图名字

DESCRIBE USER_SEQUENCES;序列字典结构

在USER_SEQUENCES数据字典表中确认您的序列值

SELECT SEQUENCE_NAME,MIN_VALUE,MAX_VALUE,INCREMENT_BY,LAST_NUMBER

FRO USER_SEQUENCES;

USER_INDEXES 提供关于索引的信息。

USER_IND_COLUMNS描述索引列,包括索引和字段。

SELECT * FROM USER_SYNONYMS;查找用户下的全部同义词的信息

使用COMMENT命令为表和字段添加注释:

COMMENT ON TABLE EMPLOYEES

IS ‘EMPLOYEES INFOMATION’

COMMENT ON COLUMN EMPLOYEES.FIRST_NAME

IS ‘FIRST NAME OF THE EMPLOYEE’

能够经过下列数据字典视图查看注释信息

ALL_COL_COMMENTS

USER_COL_COMMENTS

ALL_TAB_COMMENTS

USER_TAB_COMMENTS

相关文章
相关标签/搜索