タイトル: テーブル定義の確認
SEOタイトル: テーブル定義を確認する SQL コマンド (DESC / SHOW FULL COLUMNS)
| この記事の要点 |
|---|
|
本稿は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 |
主キー一覧が欲しい場合は SYSCAT.KEYCOLUSE を見ます。
|
SELECT CONSTNAME, COLNAME, 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を使う