通过已知字段怎么查数据库表?(Oracle,达梦通用)三大方法

从最简单的知道字段查数据库表开始

查看字段名为WORLDID所在的表:
select * from dba_tab_cols WHERE column_name = ‘WORLDID’
当然,公司的数据库不同的表里肯定存在很多重复的字段,怎么办?
存在即合理,安排他!

当知道两个以上的字段

查询语句1(容易理解)

select P.TABLE_NAME FROM
(select TABLE_NAME,COLUMN_NAME from dba_tab_cols WHERE column_name = ‘A’)AS P
JOIN
(select TABLE_NAME,COLUMN_NAME from dba_tab_cols WHERE column_name = ‘B’)AS M
ON P.TABLE_NAME = M.TABLE_NAME
JOIN
(select TABLE_NAME,COLUMN_NAME from dba_tab_cols WHERE column_name = ‘C’)AS S
ON S.TABLE_NAME = M.TABLE_NAME

注:ABC…为字段名

查询语句2(加强版)

SELECT M.TABLE_NAME
FROM
(select column_name from dba_tab_cols WHERE column_name in (‘PREFIX’ , ‘REPLACE_NAME’ ,‘SUFFIX’,‘UNIVERSE’) GROUP BY column_name) AS P
LEFT JOIN dba_tab_cols AS M
ON P.column_name = M.column_name
GROUP BY M.TABLE_NAME
HAVING COUNT(*) = 4;

注:in()里有几个字段,count(*)就等于几
理解:保证n个字段都要在查到的表里出现

查询语句3(加强版plus)

select TABLE_NAME from dba_tab_cols where column_name in (‘PREFIX’ , ‘REPLACE_NAME’ ,‘SUFFIX’,‘UNIVERSE’) group by TABLE_NAME having count(*) = 4;

Over Over

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值