首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Oracle_sqldeveloper中是否有用于查找表结构的查询

在Oracle_sqldeveloper中是否有用于查找表结构的查询
EN

Stack Overflow用户
提问于 2014-07-31 17:17:12
回答 3查看 28.7K关注 0票数 8

嗨,我是oracle_sqldeveloper的新手,你能给我如何知道数据库的表结构和关系的答案吗?

EN

回答 3

Stack Overflow用户

发布于 2014-07-31 17:21:56

你可以试试

代码语言:javascript
复制
DESC <table_name>
票数 9
EN

Stack Overflow用户

发布于 2014-07-31 17:27:30

试试这个:

代码语言:javascript
复制
select table_name, column_name, data_type 
  from all_tab_columns
 where table_name = <TABLE_NAME_HERE>
   and owner = '<YOUR_USER_HERE_IN_CAPITAL_LETTERS>'

如果您对表有注释,则要获取列的注释:

代码语言:javascript
复制
select tc.table_name, tc.column_name, tc.data_type, cc.comments
  from all_col_comments cc, all_tab_columns tc
 where tc.table_name = <TABLE_NAME_HERE>
   and tc.owner = <OWNER_OF_TABLE_HERE>
   and tc.table_name = cc.table_name
   and tc.column_name = cc.column_name
   and tc.owner = cc.owner

如果您是以表的所有者身份登录的,则可以这样写:

代码语言:javascript
复制
select table_name, column_name, data_type 
  from user_tab_columns
 where table_name = <TABLE_NAME_HERE>

或者获取带有注释的列

代码语言:javascript
复制
select tc.table_name, tc.column_name, tc.data_type, cc.comments
  from user_col_comments cc, user_tab_columns tc
 where tc.table_name = '<TABLE_NAME_HERE>'
   and tc.owner = '<YOUR_USER_HERE_IN_CAPITAL_LETTERS>'
   and tc.table_name = cc.table_name
   and tc.column_name = cc.column_name

要获取表之间的关系,请使用以下查询:

代码语言:javascript
复制
select uc1.table_name
     , uc1.constraint_name
     , cc1.column_name
     , uc2.table_name r_table_name
     , uc2.constraint_name r_constraint_name
     , cc2.column_name r_column_name
  from all_constraints uc1
     , all_constraints uc2
     , all_cons_columns cc1
     , all_cons_columns cc2
 where 1 = 1
   and uc2.constraint_type = 'R'
   and uc1.constraint_name = uc2.r_constraint_name
   and cc1.table_name = uc1.table_name
   and cc1.constraint_name = uc1.constraint_name
   and cc2.table_name = uc1.table_name
   and cc2.constraint_name = uc1.constraint_name
   and uc1.owner = '<YOUR_USER_HERE_IN_CAPITAL_LETTERS>'
   and uc2.owner = uc1.owner
   and cc1.owner = uc1.owner
   and cc2.owner = uc1.owner
 order by 1
/

带有"R_“前缀的列表示它们是外部数据(它们表示外键)。正如您所看到的,我使用了带有"ALL_“前缀的表,以使用带有"USER_”前缀的类似表,去掉了"OWNER“部分。要了解有关oracle数据字典的更多信息,请阅读this

票数 6
EN

Stack Overflow用户

发布于 2017-07-25 18:45:51

1)键入您的表名。2)右击表名,点击[打开声明]。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25055146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档