您的位置:首页 > 数据库 > Oracle

oracle 数据库字典表

2015-11-08 16:31 716 查看
数据字典内容包括:

    1,数据库中所有模式对象的信息,如表、视图、簇、索引、集群、同义词、序列、过程、方法、包、触发器 
  2,分配多少空间,当前使用了多少空间等。    3,列的缺省值。 
  4,约束信息的完整性。    5,Oracle用户的名字。 
  6,用户及角色被授予的权限。
    7,用户访问或使用的审计信息。
    8,其它产生的数据库信息。

字典表

DBA:所有方案中的视图(可以看到所有数据字典里的信息)

ALL:用户可以访问的视图(可以看到所有这个用户可以看到的信息)

USER:用户方案中的视图(仅仅是这个用户拥有的信息)

三者直接的关系:



 Oracle为了便于汇总数据字典表的信息,把所有的数据字典都汇集到dictionary表里了,通过对这个表的查询,我们可以很方便的找到数据库提供的数据字典。(数据库中一共有835张表)



静态数据字典中的视图分为三类,它们分别由三个前缀够成:user_xxx、 all_xxx、 dba_xxx。
USER_XXX:该视图存储了当前用户所拥有的对象的信息。(即所有在该用户模式下的对象)
ALL_XXX:该试图存储了当前用户能够访问的对象的信息, 而不是当前用户拥有的对象。(与user_xxx相比,all_xxx 并不需要拥有该对象,只需要具有访问该对象的权限即可)
DBA_XXX:该视图存储了数据库中所有对象的信息。(前提是当前用户具有访问这些数据库的权限,一般来说必须具有管理员权限)

user_tablespaces:表空间使用状态

SQL> select tablespace_name,status from user_tablespaces;



user_free_space:查看用户表空间的剩余空间

案例:select tablespace_name,sum(bytes)/(1024*1024),sum(blocks)/(1024*1024) from user_free_space group by tablespace_name;



 user_users:主要描述当前用户的信息,主要包括当前用户名、帐户id、帐户状态、缺省表空间、创建时间等。

     select * from user_users;
    



user_role_privs:查看当前用户的角色。
SQL>SELECT * FROM user_role_privs;

SQL>SELECT * FROM user_role_privs;



比如下面是SYS的角色
SQL> select * from user_role_privs;部分截图



user_sys_privs:查看当前用户的系统权限和表级权限

SQL>SELECT * FROM user_sys_privs;



user_sys_privs:下面是SYS用户的系统权限和表级权限



table

user_tables:主要描述当前用户拥有的所有表的信息,主要包括表名、表空间名、簇名等。通过此视图可以清楚了解当前用户可以操作的表有哪些。
SQL> select table_name,tablespace_name from user_tables;



user_objects:查询该用户拥有哪些数据库对象,对象包括表、视图、存储过程、触发器、包、索引、序列、JAVA文件等

select * from user_objects;



select object_name,created from user_objects ;



all_objects:查询某一用户下的所有表、过程、函数等信息。

select owner,object_name,object_type from all_objects where owner='SCOTT';



user_segments:查看某表的大小
SQL> select sum(bytes)/(1024*1024) "表大小(M兆)"
  2  from user_segments where segment_name=UPPER('&table_name');



索引

user_indexes 查看该用户拥有哪些索引

SQL> select index_name,table_owner,table_name,tablespace_name from user_indexes;



查看索引个数和类别
SQL>SELECT index_name,index_type,table_name
FROM user_indexes ORDER BY table_name;



查看索引被索引的字段
SQL> col INDEX_NAME for a15
SQL> col TABLE_NAME for a10
SQL> col COLUMN_NAME for a30
SQL> col COLUMN_NAME for a15
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');



user_views:查询该用户拥有哪些视图以及视图名

查看数据库的版本信息 

     

版本信息:

SQL> select * from v$version;

查看数据库的数据大小 和 总的大小 

select sum(bytes/1024/1024/1024) from user_segment where owner = 'ETL' and segment_type = 'TABLE';

select sum(bytes/1024/1024/1024) from user_segment where owner = 'ETL';
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息