1.数据字典的定义
数据字典是oracle自动创建并更新的一组表,提供了数据库结构、数据库对象空间分配和数据库用户等有关的信息。
数据字典的所有者是sys用户,而数据字典表和数据字典视图都被保存在system表空间中。
数据字典是一组表和视图结构。
数据字典是只读的,用户不可以手动更改其数据信息和结构。
2.静态数据字典:在用户的访问下不会发生改变,主要由表和视图组成,但数据字典的表不能直接访问,可以访问数据字典的视图。静态数据字典分为下面3类:
USER视图:以user_为前缀,用来记录用户对象的信息。
ALL视图:以all_为前缀,用来记录用户对象的信息以及被授权访问的对象信息。
BDA视图:以dba_为前缀,用来记录数据库实例的所有对象的信息。只能在超级用户下查看。
常用的静态视图:
user_users:存储当前用户信息,USERNAME,USER_ID,ACCOUNT_STATUS,LOCK_DATE,EXPIRY_DATE,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE,CREATED,INITIAL_RSRC_CONSUMER_GROUP,EXTERNAL_NAME。
user_tables:存储当前用户的所有表的信息。
user_objects:存储当前用户拥有的所有对象的信息。
user_tab_privs:存储当前用户下对所有表的权限信息。
例:select table_name from user_tables;
3.动态的数据字典:Oracle包含了一些潜在的由系统管理员如SYS维护的表和视图,由于当数据库运行的时候它们会不断进行更新,所以称它们为动态数据字典(或者是动态性能视图)。这些视图提供了关于内存和磁盘的运行情况,所以我们只能对其进行只读访问而不能修改它们。这些动态数据字典都是V$视图,以v$为前缀,用来记录与数据库活动相关的性能统计动态信息。
常用的动态视图:
v$session:显示当前会话信息。
v$datafile:记录系统的运行情况。
v$instance:显示当前实例的信息。
v$database:数据库的基本信息。
例:select username,terminal from v$session where username is not null;