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