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

DB2 一鍵查詢當前用戶所有表、欄位、索引與主鍵詳細資訊 SQL

     編輯:DB2 教學

查詢 SQL (適用 USERSPACE1 表空間下的使用者表)

SELECT
  d.name        AS tbName,
  COALESCE(d.remarks, '')   AS tbDesc,
  a.name        AS columnName,
  a.coltype     AS columnType,
  DECODE(a.nulls, 'Y', '1', '0')   AS notNull,
  DECODE(a.identity, 'Y', '1', '0') AS auto,
  a.longlength  AS width,
  a.scale       AS precision,
  COALESCE(a.remarks, '') AS comment,
  DECODE(n.unique_colcount, '1', '1', '0') AS unique,
  DECODE(n.uniquerule, 'P', '1', '0')   AS masterKey,
  COALESCE(n.name, '')  AS indexName
FROM sysibm.syscolumns a
INNER JOIN sysibm.systables d ON a.tbname = d.name
LEFT JOIN sysibm.sysindexes n
  ON n.tbname = d.name
  AND SUBSTR(n.colnames, 2) = a.name
WHERE d.type = 'T'
  AND d.tbspace = 'USERSPACE1';

欄位說明

輸出欄位意義
tbName表名稱
tbDesc表備註
columnName欄位名稱
columnType資料型別代碼
notNull1=NOT NULL, 0=可空
auto1=IDENTITY 自增, 0=否
width長度 (長字串/LOB 用)
precision小數位數
comment欄位備註
unique1=唯一索引欄位
masterKey1=主鍵欄位
indexName索引名稱

調整建議

  • 若需查詢所有表空間,移除 AND d.tbspace = 'USERSPACE1'。
  • 可加入 AND d.tabschema = CURRENT SCHEMA 限定當前 schema。
  • 索引欄位對應邏輯 SUBSTR(n.colnames, 2) = a.name 依賴 SYSCAT.INDEXES 的 COLNAMES 格式 (以 + 號分隔),若版本不同請驗證。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved