web-dev-qa-db-ja.com

DB2テーブル構造を表示する方法

DB2データベースのテーブル構造を表示する方法

41
Ambat bhath

sysibm.syscolumnsから回答を得ました

Select distinct(name), ColType, Length from Sysibm.syscolumns where tbname = 'employee';
53
Ambat bhath

通常、DESCRIBEを使用するのが最も簡単です。

DESCRIBE TABLE MYSCHEMA.TABLE

または

DESCRIBE INDEXES FOR MYSCHEMA.TABLE SHOW DETAIL

等.

ドキュメントを参照してください: DESCRIBEコマンド

22
Ian Bjorhovde

また、次のコマンドが機能します。

describe SELECT * FROM table_name;

Selectステートメントを他のselectステートメントに置き換えることができる場所。これは、たとえばselectを使用した複雑な挿入に非常に役立ちます。

4
Boris

DB2で、db2コマンドプロンプトに入力します。

  db2  =>  describe  table MyTableName
4
binhn

IBM DB2 10.7バージョンの表の説明については、これを試してみましたが、うまく機能しました

SELECT NAME,COLTYPE,NULLS,LONGLENGTH FROM SYSIBM.SYSCOLUMNS where TBcreator =SCHEMANAME and TBNAME =TABLENAME;
4
Vinit

1. db2 describeテーブルを使用する

  db2 describe table tabschema.tabname

2. db2 describeの出力を使用する

  db2 "describe select * from tabschema.tabname"

3. db2lookユーティリティを使用する

  db2look -d dbname -e -t tabname

4. db2 syscatで行を見つける

  db2 "Select * from syscat.columns wher tabname='' and tabschema =''"
3
Andrew

Db2データベースのテーブル構造を表示する方法

db2コマンドウィンドウを開き、次のコマンドでdb2に接続します。

> db2 connect to DATABASE_NAME USER USERNAME USING PASSWORD

接続に成功したら、次のコマンドを発行してテーブル構造を表示します。

> db2 "describe select * from SCHEMA_NAME.TABLE_NAME"

上記のコマンドは、db2テーブル構造を表形式で表示します。

注:DB2クライアント9.7.11でテスト済み

3
fabfas

このクエリを使用して、テーブルのメタデータを取得できます

SELECT * FROM SYSIBM.COLUMNS WHERE TABLE_NAME = 'ASTPCLTEXT';
2
R K

iSeries(as400)db2のphpの例、はい、これは機能しました!

$i5 = db2_connect($database, $user, $password, array("i5_lib"=>"qsys2"));

$querydesc = "select * from qsys2.syscolumns where table_schema = '".$library."' and table_name = '".$table_name."' ";

$result = db2_exec($i5, $querydesc);

また、すべてのテーブルとその説明を一覧表示するだけの場合も

$query = "select TABLE_NAME, TABLE_TEXT from systables where table_schema = '$library' ";

$result = db2_exec($i5, $query);
2
captainhero70

以下を使用して、単一のテーブルのテーブルの説明を確認します

DESCRIBE TABLE Schema Name.Table Name

以下のテーブルを結合して複数のテーブルのテーブルの説明を確認し、テーブルID syscat.tablesおよびsyscat.columnsで結合します

次のコマンドを使用して、テーブルのインデックスの詳細を確認することもできます。詳細を表示

1
Dhanish Jose

Control Centerはすでにその機能を備えています。テーブルリストのすぐ下にあります。

enter image description here

1
zawhtut

aqua Data studioを使用している場合は、select *をtable_nameから書き込み、executeを押す代わりにctrl + Dを押します。

テーブルの説明が表示されます

1

すべてのテーブルを取得するには:(スキーマをスキーマに制限することができます)

select * from syscat.tables

すべての列を取得するには:(tabname = your_tabname)

select * from syscat.columns
1
Peter Miehle

DB2/LINUXX8664 10.5.3を実行していますが、describe select * from schema_name.table_nameが機能します。

ただし、describe table schema_name.table_nameは次のエラーで失敗します。

SQL0100W No row was found for FETCH, UPDATE or DELETE; or the result of a query is an empty table. SQLSTATE=02000

0
richardsun

多くの人が既に言及している最も簡単な方法は、DESCRIBE TABLEを実行することです

ただし、以下から同じ+追加情報を取得することもできます。

db2> SELECT * SYSCAT.TABLES

db2> SELECT * FROM SYSCAT.COLUMNS

通常、SYSCAT.COLUMNSを使用して、すでに列名がわかっているデータベース内の関連テーブルを検索します:)

特定のテーブルまたはデータベース全体のDDLを取得する場合のもう1つの良い方法は、db2lookを使用することです

# db2look -d *dbname* -t *tablename* > tablestructure.out

これにより、特定のテーブルのDDLスクリプトを含む「.out」ファイルが生成されます。

# db2look -d *dbname* -e > dbstructure.out

これにより、データベース全体のDDLが単一のスクリプトファイルとして生成されます。これは通常、データベースの複製に使用されます。「-e」は、DDLをエクスポートし、新しいデータベースでまったく同じセットアップを再作成することを示します。

これがそのような答えを探している人を助けることができることを願っています:)

0
Faisal
drop view lawmod9t.vdesc

create view lawmod9t.vDesc as select 
       upper(t.table_cat) as Catalog, 
       upper(t.table_schem) as Schema, 
       upper(t.table_name) as table, 
       t.table_text as tableDesc, 
       c.system_column_name as colname_short, 
       c.column_name as colname_long, 
       c.column_text as coldesc, 
       c.Type_Name as type, 
       c.column_Size as size
from sysibm.SQLColumns c
inner join sysibm.sqltables t
on c.table_schem = t.table_schem
and c.table_name = t.table_name

select * from vdesc where table = 'YPPPOPL'
0
D. Kermott

OPでこれが議論されているDB2/400であるかどうかは言及されていませんが、列名の説明を含むテーブル構造を取得できる唯一の方法はDSPFFDを使用することであることがわかりました。

DSPFFD FILE(TBNAME) OUTPUT(*OUTFILE) OUTFILE(SOMELIB/TBDESC)

これにより、TBNAMEの説明がSOMELIBライブラリのTBDESCというテーブルに配置されます。次に、それを使用してクエリを実行できます。

select * from SOMELIB/TBDESC

0
KC Baltz

私はAquadata Studio 12.0.23を使用していますが、これは最新のものよりも短いバージョンです。あなたの経験は私のものよりも良いかもしれません。概要を得る最良の方法は、ERDジェネレーターを使用することであることがわかりました。正規化はほぼ30年前にこのデータベースの設計で使用された概念ではなかったため、数時間かかりました。数時間ですべてのオブジェクトの定義を、ファイルごとに取得できました。

0
Joseph Morgan