oracle查询表结构,外键,主键,字段,字段属性

最近用java写的数据库的表复制,用到了下面的一些查询语句,保存上免得以后忘记了

select username,default_tablespace from dba_users; 
查询用户的多有默认表空间
select * from dba_data_files where tablespace_name like 'USERS%';  
查询当前用户的表空间

1 . 查询表结构基本信息
   select * from user_tables t,user_tab_comments c
   where c.table_name = t.table_name
   and t.table_name = '表名'

2. 查询表的所有列及其属性
select t.COLUMN_NAME,
       t.DATA_TYPE,
       t.DATA_LENGTH,
       t.DATA_PRECISION,
       t.NULLABLE,
       t.COLUMN_ID,
       c.COMMENTS
   from user_tab_columns t, user_col_comments c
   where t.table_name = c.table_name
   and t.column_name = c.column_name
   and t.table_name = '表名'
   order by t.COLUMN_ID ;

3  . 查找表的主键(包括名称,构成列)
select cu.*,c.DATA_TYPE
   from user_cons_columns cu, user_constraints au,user_tab_columns c
   where cu.constraint_name = au.constraint_name
   and c.COLUMN_NAME = cu.column_name
   and c.TABLE_NAME = cu.table_name
   and au.constraint_type = 'P'
   and au.table_name = '表名'

4 . 查找表的所有索引(包括索引名,类型,构成列)
select t.*, i.index_type
  from user_ind_columns t, user_indexes i
  where t.index_name = i.index_name
   and t.table_name = i.table_name
   and t.table_name = '表名'

5.查找表的唯一性约束(包括名称,构成列)
select column_name
from user_cons_columns cu, user_constraints au
where cu.constraint_name = au.constraint_name
   and au.constraint_type = 'U'
   and au.table_name = '表名'

6. 查找表的外键(包括名称,引用表的表名和对应的键名,下面是分成多步查询)
select *
  from user_constraints c
where c.constraint_type = 'R'
   and c.table_name = '表名'


7. 查询外键约束的列名

select * from user_cons_columns cl where cl.constraint_name = '外键名称'

8.查询引用表的键的列名
select * from user_cons_columns cl where cl.constraint_name = '外键引用表的键名'

猜你喜欢

转载自libinchinabj.iteye.com/blog/1874093