この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:4
ページ更新者:atom
更新日時:2026-05-13 04:20:36

タイトル: テーブル定義の確認
SEOタイトル: テーブル定義を確認する SQL コマンド (DESC / SHOW FULL COLUMNS)

この記事の要点
  • DB2 でテーブル定義(カラム・型・NULL 許容・主キー)を確認する方法
  • 基本: db2 => describe table table_name で一覧表示
  • インデックス込み: describe indexes for table table_name show detail
  • 細かい情報はシステムカタログ SYSCAT.COLUMNS / SYSCAT.KEYCOLUSE を SELECT

 

本稿はDB2のテーブル定義を確認する方法を説明します。テーブルのカラム構造、データ型、NULL許容、デフォルト値、主キー等を一覧化したいときに使います。

1. describe コマンドで確認する

もっとも簡単な方法です。DBに接続し、対話モード(CLP)で以下のコマンドを実行します。

db2 => describe table table_name

カラム名・データ型・長さ・NULL許容などが表示されます。スキーマが必要な場合は schema.table_name の形式で指定します。

2. インデックス情報も確認する

db2 => describe indexes for table table_name show detail

主キーやユニーク制約を含めたインデックスを確認できます。

3. システムカタログから取得する

SQLでより細かい情報が欲しい場合は SYSCAT.COLUMNS を直接見ます。

SELECT COLNAME, TYPENAME, LENGTH, SCALE, NULLS, DEFAULT
FROM SYSCAT.COLUMNS
WHERE TABSCHEMA = 'SCHEMA'
  AND TABNAME = 'TABLE_NAME'
ORDER BY COLNO;

主キー一覧が欲しい場合は SYSCAT.KEYCOLUSE を見ます。

SELECT CONSTNAME, COLNAME, COLSEQ
FROM SYSCAT.KEYCOLUSE
WHERE TABSCHEMA = 'SCHEMA'
  AND TABNAME = 'TABLE_NAME'
ORDER BY COLSEQ;

4. テーブル一覧を確認する

そもそも対象テーブル名がわからないときは、まずスキーマ内のテーブル一覧を確認します。

db2 => list tables for schema SCHEMA

関連コマンド

コマンド/ビュー用途
describe table TABLEカラム構造の一覧表示
describe indexes for table TABLE show detailインデックス一覧
list tables for schema SCHEMAスキーマ内テーブル一覧
SYSCAT.COLUMNS全カラムのメタ情報を持つシステムビュー
SYSCAT.KEYCOLUSE主キー・ユニークキー構成カラム
SYSCAT.TABLESテーブル一覧(テーブル種別含む)

注意点

  • DB2はテーブル名を大文字で保持するため、SYSCAT系のクエリでは大文字で指定する
  • スキーマを省略すると現在の CURRENT SCHEMA が使われる。意図したテーブルが見つからない場合はスキーマを明示する
  • describe table はCLP用コマンド。アプリケーションからSQLで取得したいときは SYSCAT.COLUMNS を使う