SQLを介してテーブル(DB2)のすべての列の説明をどのように知ることができますか?
私のデータベースはDB2です。
select
tabname,
colname,
typename,
length,
scale,
default,
nulls,
identity,
generated,
remarks,
keyseq
from
syscat.columns
-- 注: where 句では大文字と小文字が区別され、大文字にする必要があります。
select
t.table_schema as Library
,t.table_name
,t.table_type
,c.column_name
,c.ordinal_position
,c.data_type
,c.character_maximum_length as Length
,c.numeric_precision as Precision
,c.numeric_scale as Scale
,c.column_default
,t.is_insertable_into
from sysibm.tables t
join sysibm.columns c
on t.table_schema = c.table_schema
and t.table_name = c.table_name
where t.table_schema = 'MYLIB'
and t.table_name = 'MYTABLE'
order by t.table_name, c.ordinal_position
-- すべてのメタ テーブルのリストを取得するには:
select * from sysibm.tables
where table_schema = 'SYSIBM'
SELECT COLNAME, REMARKS
FROM SYSCAT.COLUMNS
WHERE TABSCHEMA = 'MYSCHEMA'
AND TABNAME = 'MYTABLENAME'
私はiSeriesDB2ボックス(v5r4)で作業していますが、これはDB2の特別なフレーバーです。
iSeries(AS / 400)を使用している場合、またはiSeries(AS / 400)に接続している場合は、Antonが言及したリンクが最も優れています(申し訳ありませんが、まだ投票できません!)
DescriptionはiSeriesでは機能しませんが、他のプラットフォームのDB2では機能します。
describe table schema.table_name ;
select T1.name,T1.creator from sysibm.systables T1,sysibm.syscolumns
T2 where T1.name=T2.tbname and T1.creator=T2.tbccreator and
T1.creator='CREATOR NAME' and T2.name='COLUMN NAME'
私のために働いた:
select * from sysibm.columns
where table_schema = 'MY_SCHEMA'