C/C++教程

Oracle 数据字典

本文主要是介绍Oracle 数据字典,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

静态数据字典

  • user_* 该视图存储了关于当前用户所拥有的对象的信息。(即所有在该用户模式下的对象)
  • all_* 该试图存储了当前用户能够访问的对象的信息。(与user_相比,all_ 并不需要拥有该对象,只需要具有访问该对象的权限即可)
  • dba_* 该视图存储了数据库中所有对象的信息。(前提是当前用户具有访问这些数据库的权限,一般来说必须具有管理员权限)

视图名作用示例
all_tables/dba_tables/user_tables 查看系统或某个用户有哪些表 select * from user_tables where table_name = 'EMP'
all_tab_columns/dba_tab_columns/user_tab_columns 查看表的数据类型,字段长度等 select * from dba_tab_columns where table_name = 'EMP'
all_objects/dba_objects/user_objects 查看数据库对象包括:DATABASE LINK、FUNCTION、INDEX、PACKAGE、PACKAGE BODY、PROCEDURE、SEQUENCE、SYNONYM、TABLE、TRIGGER、VIEW select * from dba_tab_columns where table_name = 'EMP'
all_source/dba_source/user_source 源码,procedure,function, package, package body等有SQL语句的源码。trigger除外,详细见下面trigger相关内容 select * from all_source
all_constraints/dba_constraints/user_constraints 查看有那些约束 select * from all_constraints where table_name = 'EMP'
all_cons_columns/dba_cons_columns/user_cons_columns 查看约束的列名 SELECT * FROM all_CONS_COLUMNS where table_name = 'EMP' and constraint_name = 'PK_EMP'
all_indexes/ 索引信息 select * from user_indexes
all_ind_columns/dba_ind_columns/user_ind_columns 索引列信息 select * from user_ind_columns
dba_synonyms/all_synonyms/user_synonyms 同义词信息 select * from dba_synonyms
dba_sequences/all_sequences/user_sequences 序列信息 select * from dba_sequences;
all_views/dba_views/user_views 视图信息,Text字段存储view的语句 select * from dba_views;
all_triggers/dba_triggers/user_triggers 触发器信息 select * from dba_triggers;
all_trigger_cols/dba_trigger_cols/user_trigger_cols 触发器用到的列 select * from dba_trigger_cols
dba_db_links 数据库链 select * from dba_db_links;
user_users/dba_users 查看用户默认的表空间和临时表空间 select * from user_users
user_users 查看用户表空间配额使用情况 select * from user_ts_quotas
user_tab_privs 查看用户所拥有的对象权限 select * from user_tab_privs
user_role_privs 查看用户所拥有的角色权限 select * from user_role_privs
user_sys_privs 查看用户所拥有的系统权限 select * from user_sys_privs
role_tab_privs 查看角色所拥有的对象权限 select * from role_tab_privs
role_role_privs 查看角色所拥有的角色权限 select * from role_role_privs
role_sys_privs 查看角色所拥有的系统权限 select * from role_sys_privs
session_privs 查看当前会话相关的权限 select * from session_privs
session_roles 查看当前会话相关的角色 select * from session_roles
dba_roles 查看全数据库的所有角色 select * from dba_roles

动态数据字典

  • v$access 该视图显示数据库中锁定的数据库对象以及访问这些对象的会话对象(session对象)。
  • v$session 该视图列出当前会话的详细信息。由于该视图字段较多,这里就不列详细字段,为了解详细信息,可以直接在sql*plus命令行下键入:desc v$session即可。
  • v$active_instance 该视图主要描述当前数据库下的活动的实例的信息。依然可以使用select语句来观察该信息。
  • v$context 该视图列出当前会话的属性信息。比如命名空间、属性值等。

其中很多的数据字典都必须以 system 或者是 sysdba 用户登录才能够使用的。

视图名作用示例
v$instance 数据库实例的基本信息 select * from v$instance;
v$datafile 数据文件的基本信息 select * from v$datafile;
dba_data_files dba_data_files select file_name,file_id,tablespace_name,bytes,blocks,status,online_status from dba_data_files;
dba_temp_files 临时文件的基本信息 select file_name,file_id,tablespace_name,status, bytes/1024/1024 大小MB from dba_temp_files;
v$controlfile 控制文件的基本信息 select name,status,is_recovery_dest_file, block_size,file_size_blks from v$controlfile;
v$logfile 日志文件的基本信息 select group#,status,type,member,is_recovery_dest_file from v$logfile;
v$database 数据库的基本信息 select dbid,name,created,resetlogs_time,log_mode, open_mode,checkpoint_change#,archive_change#, controlfile_created,controlfile_type, controlfile_sequence#,controlfile_change#, controlfile_time,protection_mode,database_role from v$database;
log_archive_dest 日志文件参数信息 show parameter log_archive_dest;
v$parameter 访问参数文件 select num,name,description,type,value,display_value, isdefault,isses_modifiable, issys_modifiable,isinstance_modifiable from v$parameter;
v$bgprocess 后台进程信息 select paddr,pserial#,name,description,error from v$bgprocess;
dba_tables DBA 用户的所有的表的基本信息 select owner,table_name,column_name,data_type,data_length, global_stats,data_upgraded,histogram from dba_tab_columns;
dba_views DBA 用户的所有的视图的基本信息 select owner,view_name,read_only from dba_views;
dba_synonyms DBA 用户的所有的同义词的基本信息 select owner,synonym_name,table_owner, table_name,db_link from dba_synonyms;
dba_sequences DBA 用户的所有的序列的信息 select sequence_owner,sequence_name,min_value,max_value, cycle_flag from dba_sequences;
dba_constraints DBA 用户的所有的约束的信息 select owner,constraint_name,constraint_type, table_name,status from dba_constraints;
dba_indexes DBA 用户的所有的索引的基本信息 select owner,index_name,index_type,table_owner,table_name, table_type,uniqueness,compression,logging,status from dba_indexes;
dba_triggers DBA 用户的所有的触发器的基本信息 select owner,trigger_name,trigger_type, table_owner,table_name,column_name from dba_triggers;
dba_source DBA 用户的所有的存储过程的基本信息 select owner,name,type,line,text from dba_source;
dba_segments DBA 用户的所有的段的基本信息 select owner,segment_name,segment_type, tablespace_name,blocks,extents from dba_segments;
dba_extents DBA 用户的所有的区的基本信息 select owner,segment_name,segment_type, tablespace_name,extent_id,file_id,blocks from dba_extents;
dba_objects DBA 用户的所有的对象的基本信息 select owner,object_name,subobject_name, object_id,data_object_id,object_type, created,status,namespace from dba_objects;
cat 当前用户可以访问的所有的基表 select table_name from cat;
system.tab 当前用户可以访问的所有的基表,视图,同义词 select tname,tabtype,clusterid from system.tab;
dict 构成数据字典的所有的表信息 select table_name,comments from dict;
dba_tablespaces/dba_free_space 查询关于表空间的一些基本的数据字典 select tablespace_name,block_size,status, logging,extent_management from dba_tablespaces; select tablespace_name,file_id,block_id, bytes/1024/1024 大小MB,blocks,relative_fno from dba_free_space;
v$archived_log 归档状态的一些基本信息 select name,dest_id,blocks,block_size, archived,status,backup_count from v$archived_log;
v$sga 关于内存结构的一些信息 select name,value/1024/1024 大小MB from v$sga;
v$sgastat   select pool,name,bytes from v$sgastat;
v$db_object_cache   select owner,name,db_link,type,namespace,locks from v$db_object_cache;
$sql   select sql_text,sql_id,cpu_time from v$sql;


作者:Minnakey
链接:https://www.jianshu.com/p/fb1c09753b2e
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
这篇关于Oracle 数据字典的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!