系统自带表
oracle中像mysql一样提供了一些系统表或者函数来达成查询
dba_开头
主要存储的是 数据库信息和数据库文件的信息
dba_users 数据库用户信息
dba_segments 表段信息
dba_extents 数据区信息
dba_objects 数据库对象信息
dba_tablespaces 数加粗样式据库表空间信息
dba_data_files 临时数据文件信息
dba_temp_files 临时文件信息
dba_rollback_segs 回滚段信息
dba_ts_quotas 用户表空间配额信息
dba_free_space 数据库空闲空间信息
dba_profiles 数据库用户资源限制信息
dba_sys_privs 用户的系统权限信息
dba_tab_privs 用户具有的对象权限信息
dba_col_privs 用户具有的列对象权限信息
dba_role_privs 用户具有的角色信息
dba_audit_trail 审计跟踪记录信息
dba_stmt_audit_opts 审计设置信息
dba_audit_object 对象审计结果信息
dba_audit_session 会话审计结果信息
dba_indexes 用户模式的索引信息
User表 用户表
user_ 开头
user_objects 用户对象信息
user_source 数据库用户的所有资源对象信息
user_segments 用户的表段信息
user_tables 用户的表对象信息
user_tab_columns 用户的表列信息
user_constraints 用户的对象约束信息
user_sys_privs 当前用户的系统权限信息
user_tab_privs 当前用户的对象权限信息
user_col_privs 当前用户的表列权限信息
user_role_privs 当前用户的角色权限信息
user_indexes 用户的索引信息
user_ind_columns 用户的索引对应的表列信息
user_cons_columns 用户的约束对应的表列信息
user_clusters 用户的所有簇信息
user_clu_columns 用户的簇所包含的内容信息
user_cluster_hash_expressions 散列簇的信息
作者写了两个常用的例子:
select table_name,owner from dba_tab_columns t where t.COLUMN_NAME like upper('%username%');
查找某字段属于哪个表中信息
select count(*) from user_tab_columns where table_name = upper('TABLECOLUMN')
查找某个表中的字段个数(有多少列)
p.s. oracle默认表中的数据都是大写包括重命名后的字段名。均为大写,在java中和sql中有严格要求
继续
查找表文件信息
select * from dba_data_files; //表文件名 位置 占用大小等信息
查找表空间
select * from dba_tablespaes; //查找表空间 表空间名
查找索引
select * from dba_indexes; //查找所有索引信息