Oracle数据字典是Oracle存放某些数据库的相关信息的场所,Oracle数据字典的用途主要是用来描述相关数据。形象的说,比如某个表的创建者的信息,创建时间信息,所属表空间信息,用户访问权限信息等。
Oracle数据库数据字典是一组表和视图结构。它们存放在SYSTEM表空间中
当用户在对数据库中的数据进行操作时遇到困难就可以访问数据字典来查看详细的信息。
用户可以用SQL语句访问数据库数据字典。
Oracle数据字典内容包括:
1,数据库中所有模式对象的信息,如表、视图、簇、及索引等。
2,分配多少空间,当前使用了多少空间等。
3,列的缺省值。
4,约束信息的完整性。
5,Oracle用户的名字。
6,用户及角色被授予的权限。
7,用户访问或使用的审计信息。
8,其它产生的数据库信息。
Oracle中的数据字典有静态和动态之分。
1,静态数据字典-->主要是在用户访问数据字典时不会发生改变的,
--例如某用户创建的表
2,动态数据字典-->是依赖数据库运行的性能的,反映数据库运行的一些内在信息,所以在访问这类数据字典时往往不是一成不变的。
--当前锁住的对象
静态数据字典:这类数据字典主要是由表和视图组成
数据字典中的表是不能直接被访问的,但是可以访问Oracle数据字典中的视图。
静态数据字典中的视图分为三类,
它们分别由三个前缀够成:user_*、 all_*、 dba_*。
- user_*
该视图存储了关于当前用户所拥有的对象的信息。(即所有在该用户模式下的对象)
- all_*
该试图存储了当前用户能够访问的对象的信息。(与user_*相比,all_* 并不需要拥有该对象,只需要具有访问该对象的权限即可)
- dba_*
该视图存储了数据库中所有对象的信息。(前提是当前用户具有访问这些数据库的权限,一般来说必须具有管理员权限)
- select * from dictionary;
查询该用户拥有哪些表,user_tables主要描述当前用户拥有的所有表的信息,主要包括表名、表空间名、簇名等。通过此视图可以清楚了解当前用户可以操作的表有哪些
- desc user_tables;
- select table_name from user_tables;
- select * from user_tables;
查询该用户拥有哪些索引
- select index_name from user_indexes;
查询该用户拥有哪些视图
- select view_name from user_views;
查询该用户拥有哪些数据库对象,对象包括表、视图、存储过程、触发器、包、索引、序列、JAVA文件等。
以上的相关内容就是对Oracle数据字典的相关内容的介绍,望你能有所收获。
【编辑推荐】