【赵渝强老师】Oracle的数据字典_数据库

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

Oracle的数据字典


【赵渝强老师】Oracle的数据字典


  Oracle的数据字典有4种不同的命名前缀。下表列举了这4种前缀以及他们的含义。

【赵渝强老师】Oracle的数据字典_数据字典_02


  在了解到了Oracle数据字典的基本信息后,下面通过几个具体的示例来演示如何从数据字典获取相关的信息。

(1)使用c##scott用户查看当前用户的默认表空间

SQL> select username, default_tablespace from user_users;

# 输出的信息如下:
USERNAME	DEFAULT_TABLESPACE
-----------  ---------------------------
C##SCOTT	USERS
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

(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
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

(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
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

(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
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.