现在的位置: 首页 > 综合 > 正文

oracle用户表结构、主键、非空查询

2013年12月10日 ⁄ 综合 ⁄ 共 1736字 ⁄ 字号 评论关闭

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') ;

 

 

抱歉!评论已关闭.