user_tab_columns用户表字段信息,包括table_name,column_name,datatype,datalength,datascale等。
user_tab_comments用户表描述,包括table_name,tabletype(table,view...),comments。
user_col_comments用户表字段描述,包括table_name,column_name,comments。
user_tab_cols用户表和字段的关系表。
user_constraints用户表约束表,包括table_name,constraint_name,index等
User_Cons_Columns用户表字段和约束关联表,包括table_name,constraint_name,column_name等。
all_indexes索引表,包括index_name,unique等。
all_ind_columns索引和字段关联表
col字段表,包括column_name,isnullable,table_name等。
user_objects用户对象表,包括object_type(view,table,index),object_name等。
(1)查询唯一
select * from all_indexes g
inner join all_ind_columns a on g.INDEX_NAME = a.INDEX_NAME
and g.UNIQUENESS = ''UNIQUE''
where a.TABLE_NAME = 'TB'
(2)查询主键
select * from user_cons_columns e
inner join user_constraints f on e.TABLE_NAME = f.TABLE_NAME
and f.CONSTRAINT_TYPE = ''P''
where e.TABLE_NAME='TB'
(3)查询约束
select * from user_cons_columns a, user_constraints b
where a.constraint_name = b.constraint_name and a.table_name = upper('tb')
(4)查询表结构
select a.table_name TableName,a.COLUMN_NAME FieldName,
case when
exists(select h.COLUMN_NAME from all_indexes g
inner join all_ind_columns h on g.INDEX_NAME = h.INDEX_NAME
and g.UNIQUENESS = 'UNIQUE'
where a.COLUMN_NAME = h.COLUMN_NAME and h.TABLE_NAME = a.TABLE_NAME )
then '1'
else '0'
end FieldIsIdentity,
case when
exists(select e.COLUMN_NAME from user_cons_columns e
inner join user_constraints f on e.TABLE_NAME = f.TABLE_NAME
and f.CONSTRAINT_TYPE = 'P'
where e.TABLE_NAME=a.TABLE_NAME and a.COLUMN_NAME = e.COLUMN_NAME)
then '1'
else '0'
end FieldIsPrimary,
a.DATA_TYPE FieldType,
a.DATA_LENGTH FieldLength,
a.DATA_PRECISION FieldPrecision,
a.DATA_SCALE FieldScale
from user_tab_columns a, user_constraints b, user_cons_columns c,user_tab_comments d
where b.CONSTRAINT_NAME = c.CONSTRAINT_NAME
and d.TABLE_NAME = a.TABLE_NAME
and a.table_name = upper('tb') ;