Oracle 表結構、索引以及分區信息查詢


Oracle 表結構、索引以及分區信息查詢

/* 獲取表:*/
select table_name from user_tables; --當前用戶的表      
select table_name from all_tables; --所有用戶的表  
select table_name from dba_tables; --包括系統表
--表字段信息
select * from all_tab_columns a where a.TABLE_NAME='T_X27_USER';
--表注釋信息
select * from user_tab_comments a  where a.table_name='T_X27_USER';
--表字段注釋信息
select * from user_col_comments a where a.table_name='T_X27_USER';
--表分區信息
--1,分區表信息
-- (1)顯示數據庫所有分區表的信息
select * from DBA_PART_TABLES a where a.owner=upper('') and a.table_name=upper('');
-- (2)顯示當前用戶可訪問的所有分區表信息
select * from ALL_PART_TABLES  a where a.owner=upper('') and a.table_name=upper('');
-- (3)顯示當前用戶所有分區表的信息
select * from USER_PART_TABLES  a where a.table_name=upper('');
--2,分區表的分區列信息
-- (1)顯示當前用戶所有分區表的分區列信息
select * from USER_PART_KEY_COLUMNS a where a.name=upper('') and a.object_type='TABLE';
-- (2)顯示當前用戶可訪問的所有分區表的分區列信息
select * from ALL_PART_KEY_COLUMNS  a where a.owner=upper('etl') and a.name=upper('') and a.object_type='TABLE';
--(3)顯示分區列 顯示數據庫所有分區表的分區列信息
select * from DBA_PART_KEY_COLUMNS a where a.owner=upper('etl') and a.name=upper('') and a.object_type='TABLE';
-- 3,分區表的名字、歸屬表空間以及表的詳細分區情況
select * from user_tab_partitions a where a.table_name=upper('');
-- 4,查看組合表的子分區信息以及子分區列信息情況
-- (1)顯示當前用戶所有組合分區表的子分區信息
select * from USER_TAB_SUBPARTITIONS;
-- (2)顯示當前用戶可訪問的所有組合分區表的子分區信息
select * from ALL_TAB_SUBPARTITIONS; 
-- (3)顯示當前用戶可訪問的所有組合分區表的子分區信息 
select * from ALL_TAB_SUBPARTITIONS ;
-- (4)顯示當前用戶所有分區表的子分區列信息
select * from USER_SUBPART_KEY_COLUMNS;
-- (5)顯示當前用戶可訪問的所有分區表的子分區列信息
select * from ALL_SUBPART_KEY_COLUMNS; 
-- (6)顯示子分區列 顯示數據庫所有分區表的子分區列信息 
select * from DBA_SUBPART_KEY_COLUMNS;
--表包含的索引
select * from user_indexes where table_name=upper('T_X27_USER');
--索引的具體信息:根據索引名查看索引包含的字段
select * from user_ind_columns where index_name = 'UK_T_X27_USER_USERID';
--表的唯一約束條件
select * from user_constraints where constraint_type='U' and owner='ETL' and table_name='T_X27_USER'; 
--表外鍵
select * from user_constraints where constraint_type='R' and owner='ETL' and table_name='T_X27_USER'; 
--表外鍵以及約束條件字段組成信息
select * from user_cons_columns where owner='ETL' and table_name='T_X27_USER'; 

 示例(oracle查看表結構信息):

select a.owner 所屬用戶,
a.table_name 表名,
a.column_name 字段名,
a.data_type 字段類型,
a.字段長度,
a.字段精度,
a.是否為空,
a.創建日期,
a.最后修改日期, 
case when a.owner=d.owner and a.table_name=d.table_name and a.column_name=d.column_name then '主鍵' else '' end 是否主鍵 
from
(select a.owner,a.table_name,b.column_name,b.data_type,case when b.data_precision is null then b.data_length else data_precision end 字段長度,data_scale 字段精度,
decode(nullable,'Y','','N','×') 是否為空,c.created 創建日期,c.last_ddl_time 最后修改日期 
from all_tables a,all_tab_columns b,all_objects c 
where a.table_name=b.table_name and a.owner=b.owner
and a.owner=c.owner
and a.table_name=c.object_name
and a.owner='SCOTT' --這個是查某個用戶,你到時候把用戶名換一下就好,一定大寫
and c.object_type='TABLE') a
left join 
(select a.owner,a.table_name,a.column_name,a.constraint_name from user_cons_columns a, user_constraints b 
where a.constraint_name = b.constraint_name and b.constraint_type = 'P') d
on a.owner=d.owner and a.table_name=d.table_name and a.column_name=d.column_name
order by a.owner,a.table_name;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM