Oracle的数据字典由四部分组成:

  1. 内部表(X$): Oracle的核心,官网不做说明, Oracle通过大量X$建立起大量视图,仅供用户select。
  2. 数据字典表: 用以存储表、索引、约束以及其他数据库结构信息,通常以$结尾,如tab$,obj$,ts$,aud$等。
  3. 动态性能表(V$): 实时更新反应当前的数据库状态,官网对V$视图有详尽的说明。
  4. 数据字典视图: 在X$表和数据字典表上创建,通常分为三类dba_, all_, user_.
    • user_:包含了当前数据库用户所拥有的所有的模式对象的信息
      • user_tables: 用于显示当前用户所拥有的所有表,它只返回用户所对应方案的所有表
    • all_   :包含了当前数据库用户可以访问的所有的模式对象的信息
      • all_tables: 用于显示当前用户可以访问的所有表,它不仅会返回当前用户方案的所有表,还会返回当前用户可以访问的其它方案的表
    • dba_ :包含了所有数据库对象信息,只有具有DBA角色的用户才嫩而过访问的这些视图 
      • dba_tables: 它会显示所有方案拥有的数据库表。但是查询这种数据库字典视图,要求用户必须是dba角色或是有select any table 系统权限
      • dba_users:可以显示所有数据库用户的详细信息
      • dba_sys_privs:可以显示用户所具有的系统权限
      • dba_tab_privs:可以显示用户具有的对象权限
      • dba_col_privs:可以显示用户具有的列权限
      • dba_role_privs:可以显示用户所具有的角色

注: dba_ 开头的 必须是sys 用户所有 ,非 sys 用户 需要在前面加 sys 前缀

# 查询所有的数据字典
SELECT * FROM dictionary

 

下面都是一些常用的视图家族,都有一个DBA_ ALL_ USER_ 的视图 :

  • col_privs  包含了表的列权限信息,包含授予者,被授予者和权限名称等信息
  • extents    存储分配信息,包括数据段名 表空间名和分区编号,分区大小
  • indexes    索引信息  包含索引类型, 唯一性, 索引作用等表的信息
  • ind_columns  索引列信息  包括索引上的列的排序方式等信息
  • object      对象信息, 包括对象名称 类型  创建时间 等信息
  • segments  表和索引的数据段信息,包括表空间,存储设置等信息
  • sequences  序列信息 包含序列名称 ,循环性,最大值等信息
  • source    除触发器之外的所有存储过程,函数,包的源代码信息 
  • synonyms 同义词信息  包括引用的对象等信息
  • sys_privs  系统权限信息 包括系统权限名称 授予者
  • tab_columns  表和视图的列信息 ,包括列的数据类型等信息 
  • tab_privs  表权限信息 
  • tables  表信息 包括表所属的表空间 ,存储参数 ,数据行数量等信息。
  • triggers  触发器信息 包括触发器的类型,事件。触发器体等信息
  • users 用户信息 。包括用户临时和默认的表空间的类型
  • views  视图 信息 

 

SQLPLUS命令:

SHOW USER:显示当前链接用户

 

SET LINESIZE 300:设置行宽300,默认100

 

COL 列名 FORMAT A20:设置某行显示的字数长度

 

 

 

SEL PAGESIZE 30:

 

 

DESC 表名:显示表结构

 

 

 

 CONN 用户名/密码:链接登陆

posted on 2019-09-23 16:41  Q同码  阅读(584)  评论(0编辑  收藏  举报