Oracle中查询主键、外键、sequence、表基本信息

来源:互联网 发布:5g网络系统架构 编辑:程序博客网 时间:2024/05/16 06:51

现在DBA工作比较忙,我们项目有时需要新增或者修改数据库表结构时,可能需要对表结构进行确认。下面提供几个比较有用对SQL,可以帮助大家看看数据库中表结构定义怎样的,以PRODUCT表为例,请自行更换为所需的表名。

1.查询主键:

----*********查询主键------------
select  col.*
from user_constraints con,user_cons_columns col
where
con.constraint_name=col.constraint_name and con.constraint_type='P'
and col.table_name='PRODUCT'

select   *   from   user_constraints   where   table_name   =   'PRODUCT'
and   constraint_type   ='P'


2.查看表结构基本信息:

--------*********查询表基本信息---------------
select
utc.column_name,utc.data_type,utc.data_length,utc.data_precision,
utc.data_Scale,utc.nullable,utc.data_default,ucc.comments
from
user_tab_columns utc,user_col_comments ucc
where
utc.table_name = ucc.table_name
and utc.column_name = ucc.column_name
and utc.table_name = 'PRODUCT'
order by
column_id

3.查看SEQUENCE

-----sequence-------------------

SELECT SEQ_PRODUCT_DRAFT.nextval FROM dual

----能查出来就说明该SEQ存在

(PRODUCT表中的ID是没有设SEQ的,业务逻辑是该从product_draft那边的ID写入product.id,所以此处查的是 product_draft中的seq)

4.查看外键
----
**查询外键-----
select distinct(ucc.column_name) column_name,rela.table_name,rela.column_name column_name1

from
 user_constraints uc,user_cons_columns ucc,
 (select t2.table_name,t2.column_name,t1.r_constraint_name from user_constraints t1,user_cons_columns t2 where t1.r_constraint_name=t2.constraint_name and t1.table_name='ONLINEXLS') rela
where
 uc.constraint_name=ucc.constraint_name
 and uc.r_constraint_name=rela.r_constraint_name
 and uc.table_name='PRODUCT'