首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 教學

Oracle 取得資料表結構完整資訊的 SQL 查詢語句

     編輯:Oracle 教學

單一 SQL 取得資料表欄位、註解、主鍵、資料型態完整定義

以下查詢整合 USER_TAB_COLS、USER_COL_COMMENTS、USER_TAB_COMMENTS、USER_CONS_COLUMNS 四個資料字典視圖,一次取得指定資料表的完整結構描述,包含欄位序號、名稱、註解、是否主鍵、資料型態、長度、精度、小數位、是否可空等資訊。

查詢語句

SELECT 
  CASE WHEN t.COLUMN_ID = 1 THEN t.TABLE_NAME END AS TABLE_NAME,
  CASE WHEN t.COLUMN_ID = 1 THEN t2.COMMENTS END AS TABLE_COMMENTS,
  t.COLUMN_ID,
  t.COLUMN_NAME,
  t1.COMMENTS AS COLUMN_COMMENTS,
  CASE WHEN t3.COLUMN_NAME IS NOT NULL THEN 'Y' ELSE NULL END AS PRIMARY_KEY,
  t.DATA_TYPE,
  t.DATA_LENGTH,
  t.DATA_PRECISION,
  t.DATA_SCALE,
  t.NULLABLE
FROM USER_TAB_COLS t
JOIN USER_COL_COMMENTS t1 
  ON t.TABLE_NAME = t1.TABLE_NAME 
  AND t.COLUMN_NAME = t1.COLUMN_NAME
JOIN USER_TAB_COMMENTS t2 
  ON t.TABLE_NAME = t2.TABLE_NAME
LEFT JOIN USER_CONS_COLUMNS t3 
  ON t.TABLE_NAME = t3.TABLE_NAME 
  AND t.COLUMN_NAME = t3.COLUMN_NAME 
  AND t3.POSITION > 0
WHERE t.TABLE_NAME = 'S_SALARY'
ORDER BY t.COLUMN_ID;

欄位說明

  • TABLE_NAME / TABLE_COMMENTS:僅在第一欄顯示,避免重複
  • COLUMN_ID:欄位順序
  • PRIMARY_KEY:'Y' 表示為主鍵欄位
  • DATA_TYPE / DATA_LENGTH / DATA_PRECISION / DATA_SCALE:完整型態定義
  • NULLABLE:'Y' 可空、'N' 不可空

適用場景

  • 自動化文件產生工具
  • 結構比對與異動追蹤
  • 資料庫遷移評估
  • 開發人員快速查閱表結構

提示:若需查詢所有使用者物件,將視圖前綴改為 ALL_ 或 DBA_ 並具備相應權限。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved