1. 程式人生 > >Oracle 查詢表名和列名以及所有外來鍵

Oracle 查詢表名和列名以及所有外來鍵

分享一下我老師大神的人工智慧教程吧。零基礎,通俗易懂!風趣幽默!http://www.captainbed.net/

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

               

1.查詢所有表

select table_name,tablespace_name,temporary from user_tables [where table_name=表名]


2.查詢所有列名

select column_name,data_type ,data_length,data_precision,data_scale,table_name from user_tab_columns [where table_name=列名];


3.查詢所有外來鍵

select * from user_constraints a where a.constraint_type = 'R'   [and a.table_name = 表名 ]


4.根據外來鍵名稱獲取 約束表 和 約束列

select * from user_cons_columns b where b.constraint_name = {a.constraint_name}

說明:{a.constraint_name} 是從上面3中查詢果中獲取的外來鍵名稱


5.根據外來鍵引用表的鍵名  獲取 參照表 和 參照列

select * from user_cons_columns c where b.constraint_name = {a.r_constraint_name}

說明:{a.r_constraint_name} 是從上面3中查詢果中獲取的參照key名稱


6.整合後查詢



select b.constraint_name 外來鍵名稱, b.table_name 約束表,  b.column_name 約束列,c.table_name as 參照表,c.column_name 參照列,a.delete_rule 刪除級聯
from user_constraints a
left  join user_cons_columns b on a.constraint_name = b.constraint_name
left  join user_cons_columns c on a.r_constraint_name = c.constraint_name
where a.constraint_type = 'R' and a.table_name = 'ACT_RU_TASK' 

對應結果:




           

給我老師的人工智慧教程打call!http://www.captainbed.net/

這裡寫圖片描述