头图

  数据字典是Oracle存放有关数据库信息的地方,几乎所有的数据库信息和对象信息都可在数据字典中进行查询,它是随着数据库的建立而建立的。数据字典是Oracle数据库系统的信息核心,它是一组提供有关数据库信息的表和视图的集合。对于普通用户而言,这些表和视图是只读的。Oracle数据库的管理员sys用户是数据字典的拥有者,数据字典的数据保存在系统表空间system中。视频讲解如下:
https://www.bilibili.com/video/BV1eZ421u7gV/?aid=1155589542&c...

  Oracle的数据字典有4种不同的命名前缀。下表列举了这4种前缀以及他们的含义。
在这里插入图片描述
  在了解到了Oracle数据字典的基本信息后,下面通过几个具体的示例来演示如何从数据字典获取相关的信息。
(1)使用c##scott用户查看当前用户的默认表空间

SQL> select username, default_tablespace from user_users;

# 输出的信息如下:
USERNAME    DEFAULT_TABLESPACE
-----------  ---------------------------
C##SCOTT    USERS

(2)使用c##scott用户查看当前用户角色

SQL> select * from user_role_privs;

# 输出的信息如下:
USERNAME         GRANTED_ROLE      ADM DEL DEF OS_ COM INH
------------------------ -------------------------------- 
C##SCOTT         CONNECT          NO  NO  YES NO  NO  NO
C##SCOTT         RESOURCE          NO  NO  YES NO  NO  NO

(3)使用sys用户查看表空间的信息。

SQL> select tablespace_name, sum(bytes), sum(blocks) from dba_free_space group by tablespace_name; 

# 输出的信息如下:
TABLESPACE_NAME            SUM(BYTES)         SUM(BLOCKS)
----------------------- ------------  -------------
SYSTEM                    9306112            1136
SYSAUX                    38338560        4680
UNDOTBS1                101318656        12368
USERS                    11141120        1360

(4)使用sys用户查看用户c##scott创建表的信息。

SQL> select owner,object_name,object_type from dba_objects where object_type='TABLE' and OWNER='C##SCOTT';  

# 输出的信息如下:
OWNER        OBJECT_NAME            OBJECT_TYPE
---------  ---------------    -------------
C##SCOTT   MSG                    TABLE
C##SCOTT   AUDIT_MESSAGE        TABLE
C##SCOTT   DEPT                 TABLE
C##SCOTT   EMP                    TABLE
C##SCOTT   BONUS                TABLE
C##SCOTT   SALGRADE                TABLE

赵渝强老师
30 声望10 粉丝

20年以上的IT行业从业经历,清华大学计算机软件工程专业毕业,京东大学大数据学院院长,Oracle中国有限公司高级技术顾问;曾在BEA、甲骨文、摩托罗拉等世界500强公司担任高级软件架构师或咨询顾问等要职,精通大...