数据字典是Oracle存放有关数据库信息的地方,几乎所有的数据库信息和对象信息都可在数据字典中进行查询,它是随着数据库的建立而建立的。数据字典是Oracle数据库系统的信息核心,它是一组提供有关数据库信息的表和视图的集合。对于普通用户而言,这些表和视图是只读的。Oracle数据库的管理员sys用户是数据字典的拥有者,数据字典的数据保存在系统表空间system中。视频讲解如下:
Oracle的数据字典有4种不同的命名前缀。下表列举了这4种前缀以及他们的含义。
在了解到了Oracle数据字典的基本信息后,下面通过几个具体的示例来演示如何从数据字典获取相关的信息。
(1)使用c##scott用户查看当前用户的默认表空间
代码语言:sql复制SQL> select username, default_tablespace from user_users;
# 输出的信息如下:
USERNAME DEFAULT_TABLESPACE
----------- ---------------------------
C##SCOTT USERS
(2)使用c##scott用户查看当前用户角色
代码语言:sql复制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复制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复制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