博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
列举当前用户或指定用户的所有表,所有字段,以及所有约束
阅读量:6339 次
发布时间:2019-06-22

本文共 1608 字,大约阅读时间需要 5 分钟。

当前用户自己的表:

select table_name from user_tables;  用户自己拥有的表

 

其它用户的表:

select table_name from all_tables;  //所有用户的表 

select * from all_tab_cols where owner='DATABACK' order by table_name,column_name

--查询某表所有外键对应的列名、主表名、主表列名

--下面sql只用到了两张表 user_constraints  和 user_cons_columns

--user_constraints表主要记录了 表名、约束名、对应关联表的约束名,可以理解为子表、外键约束名、主表主键约束名

--user_cons_columns 主要记录了 每张表的约束名(包括主键约束和外键约束)以及对应的字段

--因此,要找到某子表所有的外键字段以及对应的主表和主表字段,关键是利用第一张表user_constraints的两个字段,子表的外键约束名和对应的主表的主键约束名。

--将user_constraints重复成两张表cn1和cn2,它俩的关系是cn1.r_constraint_name=cn2.constraint_name

--然后将各自的表名和列名显示出来就行。

关键点:user_constraints这张表里,如果记录的外键关系(CONSTRAINT_TYPE=R)时,它的R_CONSTRAINT_NAME字段会记录主键约束名称。而当记录主键关系(CONSTRAINT_TYPE=P)时R_CONSTRAINT_NAME为空

select cn1.table_name,uc1.column_name,cn2.table_name,uc2.column_name

from user_constraints cn1,user_constraints cn2, user_cons_columns uc1, user_cons_columns uc2
where
cn1.table_name='GM_ARC'
and cn1.constraint_type='R'
and cn1.r_constraint_name=cn2.constraint_name
and cn1.constraint_name=uc1.constraint_name
and cn2.constraint_name=uc2.constraint_name

 

主键名称、外键在all_constraints 

索引在all_indexes 

 

4、查找表的外键(包括名称,引用表的表名和对应的键名,下面是分成多步查询):
select * from user_constraints c where c.constraint_type = 'R' and c.table_name = 要查询的表
 
查询外键约束的列名:
select * from user_cons_columns cl where cl.constraint_name = 外键名称
 
查询引用表的键的列名:
select * from user_cons_columns cl where cl.constraint_name = 外键引用表的键名
 
5、查询表的所有列及其属性
select t.*,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 = 要查询的表

 

转载于:https://www.cnblogs.com/mol1995/p/7185745.html

你可能感兴趣的文章
java web学习-1
查看>>
用maven+springMVC创建一个项目
查看>>
linux设备驱动第四篇:以oops信息定位代码行为例谈驱动调试方法
查看>>
redis知识点整理
查看>>
Hello World
查看>>
Spring3全注解配置
查看>>
ThreadLocal真会内存泄露?
查看>>
低版本mybatis不能用PageHeper插件的时候用这个分页
查看>>
javaweb使用自定义id,快速编码与生成ID
查看>>
[leetcode] Add Two Numbers
查看>>
elasticsearch suggest 的几种使用-completion 的基本 使用
查看>>
04-【MongoDB入门教程】mongo命令行
查看>>
字符串与整数之间的转换
查看>>
断点传输HTTP和URL协议
查看>>
redis 数据类型详解 以及 redis适用场景场合
查看>>
mysql服务器的主从配置
查看>>
巧用AJAX技术,通过updatePanel控件实现局部刷新
查看>>
20140420技术交流活动总结
查看>>
SaltStack配置salt-api
查看>>
各种情况下block的类型
查看>>