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

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'

查看表结构基本信息:

--------*********查询表基本信息---------------

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

查看SEQUENCE

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

create sequence SEQ_LOG_ID
minvalue 1  --增长最小值
maxvalue 9999999999  --增长最大值,也可以设置NOMAXvalue -- 不设置最大值
start with 101  --从101开始计数
increment by 1  --自增步长为1
cache 50  --设置缓存cache个序列,如果系统down掉了或者其它情况将会导致序列不连续,也可以设置为---NOCACHE防止跳号
cycle;  --循环,当达到最大值时,不是从start with设置的值开始循环。而是从1开始循环

select   table_name   from   all_tables   where   owner   =upper('jdfp')    ;

此处查的是tieba这个用户表空间下的所有表名

-----------------------------------------------------

查询当前用户下的sequence

select * from user_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'
发布了340 篇原创文章 · 获赞 33 · 访问量 22万+

猜你喜欢

转载自blog.csdn.net/yz18931904/article/details/105508465