Oracle里面常用的数据字典有哪些
发布时间:2025-05-24 19:40:58 发布人:远客网络
一、Oracle里面常用的数据字典有哪些
1、●数据库中所有方案对象(schema object)的定义(包括表,视图,索引,簇,同义词,序列,过程,函数,包,触发器等等)
2、●数据库为一个方案对象分配了多少空间,以及该对象当前使用了多少空间
3、●完整性约束(integrity constraint)信息
4、●每个用户被授予(grant)的权限(privilege)与角色(role)
5、●监控(audit)信息,例如哪个用户对某个方案对象进行了访问或更新操作
6、●数据库中的其他概要信息与数据库内的其他数据相同,数据字典也是以表及视图的形式组织的。一个数据库全部的数据字典表与数据字典视图都存储在该数据库的 SYSTEM表空间内。数据字典不仅是 Oracle数据库的基础组成部分,她也为所有用户--从终端用户,到应用程序设计者,再到数据库管理员--提供了一个重要的工具。数据字典可以通过SQL语句进行访问。由于数据字典是只读的,用户只能对这些表和视图执行查询操作(SELECT语句)。
7、基表(base table)用于存储相关的数据库信息。只有 Oracle才能读写这些表。用户很少直接访问她们,因为这些表是规范化(normalized),且其中的大部分数据的含义是普通用户无法理解的。
8、用户访问视图(user-accessible view)用于对数据字典基表内存储的数据进行汇总与展示。这些视图利用连接(join)及 WHERE
9、子句简化基表中的数据,将其解码(decode)为用户可理解的信息,例如用户名,表名等。大多数数据库用户只能访问这些视图,而不能访问基表。
10、警告:修改或操作数据字典表中的数据可能会给数据库的运行带来不可恢复的损害。
11、● Oracle利用数据字典来获取关于用户,方案对象,及存储结构(storagestructure)的信息。
12、●每当数据库中执行了 DDL语句后,Oracle将对数据字典进行修改。
二、Oracle 的数据字典里都有什么
数据字典中包含:●数据库中所有方案对象(schema object)的定义(包括表,视图,索引,簇,同义词,序列,过程,函数,包,触发器等等)●数据库为一个方案对象分配了多少空间,以及该对象当前使用了多少空间●列的默认值●完整性约束(integrity constraint)信息●数据库用户名●每个用户被授予(grant)的权限(privilege)与角色(role)●监控(audit)信息,例如哪个用户对某个方案对象进行了访问或更新操作●数据库中的其他概要信息与数据库内的其他数据相同,数据字典也是以表及视图的形式组织的。一个数据库全部的数据字典表与数据字典视图都存储在该数据库的 SYSTEM表空间内。数据字典不仅是 Oracle数据库的基础组成部分,她也为所有用户--从终端用户,到应用程序设计者,再到数据库管理员--提供了一个重要的工具。数据字典可以通过SQL语句进行访问。由于数据字典是只读的,用户只能对这些表和视图执行查询操作(SELECT语句)。数据字典由以下两种结构组成:基表(base table)用于存储相关的数据库信息。只有 Oracle才能读写这些表。用户很少直接访问她们,因为这些表是规范化(normalized),且其中的大部分数据的含义是普通用户无法理解的。用户访问视图(user-accessible view)用于对数据字典基表内存储的数据进行汇总与展示。这些视图利用连接(join)及 WHERE子句简化基表中的数据,将其解码(decode)为用户可理解的信息,例如用户名,表名等。大多数数据库用户只能访问这些视图,而不能访问基表。警告:修改或操作数据字典表中的数据可能会给数据库的运行带来不可恢复的损害。数据字典有三个主要用途:● Oracle利用数据字典来获取关于用户,方案对象,及存储结构(storagestructure)的信息。●每当数据库中执行了 DDL语句后,Oracle将对数据字典进行修改。
三、如何有效地利用oracle的数据字典
1、 ORACLE的数据字典是数据库的重要组成部分之一,它随着数据库的产生而产生,随着数据库的变化而变化,体现为sys用户下的一些表和视图。数据字典名称是大写的英文字符。数据字典里存有用户信息、用户的权限信息、所有数据对象信息、表的约束条件、统计分析数据
2、 ORACLE的数据字典是数据库的重要组成部分之一,它随着数据库的产生而产生,随着数据库的变化而变化,体现为sys用户下的一些表和视图。数据字典名称是大写的英文字符。
3、数据字典里存有用户信息、用户的权限信息、所有数据对象信息、表的约束条件、统计分析数据库的视图等。我们不能手工修改数据字典里的信息。很多时候,一般的ORACLE用户不知道如何有效地利用它。
4、dictionary全部数据字典表的名称和解释,它有一个同义词dict
5、dict_column全部数据字典表里字段名称和解释
6、如果我们想查询跟索引有关的数据字典时,可以用下面这条SQL语句:
7、 SQL>select* from dictionary where instr(comments,'index')>0;
8、如果我们想知道user_indexes表各字段名称的详细含义,可以用下面这条SQL语句:
9、 SQL>select column_name,comments from dict_columns where
10、依此类推,就可以轻松知道数据字典的详细名称和解释,不用查看ORACLE的其它文档资料了。
11、下面按类别列出一些ORACLE用户常用数据字典的查询使用方法。
12、 SQL>select username,default_tablespace from user_users;
13、 SQL>select* from user_role_privs;
14、查看当前用户的系统权限和表级权限
15、 SQL>select* from user_sys_privs;
16、 SQL>select* from user_tab_privs;
17、 SQL>select* from user_tables;
18、 SQL>select object_name,object_id from user_objects where instr(object_name,'LOG')>0;
19、 SQL>select object_name,created from user_objects where object_name=upper
20、 SQL>select sum(bytes)/(1024*1024) as"size(M)" from user_segments where
21、segment_name=upper('&table_name');
22、 SQL>select table_name,cache from user_tables where instr(cache,'Y')>0;
23、 SQL>select index_name,index_type,table_name from user_indexes order by table_name;
24、 SQL>select* from user_ind_columns where index_name=upper('&index_name');
25、 SQL>select sum(bytes)/(1024*1024) as"size(M)" from user_segments where
26、segment_name=upper('&index_name');
27、查看序列号,last_number是当前值
28、 SQL>select* from user_sequences;
29、 SQL>select view_name from user_views;
30、 SQL>select view_name,text_length from user_views;
31、 SQL>set long 2000;说明:可以根据视图的text_length值设定set long的大小
32、 SQL>select text from user_views where view_name=upper('&view_name');
33、 SQL>select* from user_synonyms;
34、 SQL>select constraint_name, constraint_type,search_condition, r_constraint_name from
35、user_constraints where table_name= upper('&table_name');
36、 SQL>select c.constraint_name,c.constraint_type,cc.column_name
37、 from user_constraints c,user_cons_columns cc
38、 where c.owner= upper('&table_owner') and c.table_name= upper('&table_name')
39、 and c.owner= cc.owner and c.constraint_name= cc.constraint_name
40、 SQL>select object_name,status from user_objects where object_type='FUNCTION';
41、 SQL>select object_name,status from user_objects where object_type='PROCEDURE';
42、 SQL>select text from all_source where owner=user and name=upper('&plsql_name');
43、'create or replace trigger"'||
44、 trigger_name||'"'|| chr(10)||
45、 decode( substr( trigger_type, 1, 1),
46、'A','AFTER','B','BEFORE','I','INSTEAD OF')||
47、 decode( instr( trigger_type,'EACH ROW'), 0, null,