27

我们如何通过SQL知道表(DB2)中每一列的描述?

我的数据库是 DB2。

4

8 回答 8

23
select 
  tabname,
  colname,
  typename,
  length,
  scale,
  default,
  nulls,
  identity,
  generated,
  remarks,
  keyseq 
from 
  syscat.columns 
于 2009-02-24T07:57:18.677 回答
17
SELECT 
TABLE_CAT, 
TABLE_SCHEM, 
TABLE_NAME, 
COLUMN_NAME, 
DATA_TYPE, 
TYPE_NAME, 
COLUMN_SIZE, 
COLUMN_TEXT
FROM "SYSIBM"."SQLCOLUMNS"
WHERE TABLE_SCHEM = 'SCHEMA' 
 AND TABLE_NAME = 'TABLE'

这是在 DB2 V5R4 上,不是系统表而是SYSTEM VIEW. 以防你在表格列表中寻找它而发疯。

于 2014-09-12T22:30:46.090 回答
12

-- 注意: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'
于 2013-04-30T16:10:26.410 回答
4

SELECT COLNAME, REMARKS FROM SYSCAT.COLUMNS WHERE TABSCHEMA = 'MYSCHEMA' AND TABNAME = 'MYTABLENAME'

于 2011-10-03T15:09:54.600 回答
2
describe table schema.table_name ;

DB2 描述命令

于 2009-02-24T20:57:25.900 回答
2

我在 iSeries DB2 box (v5r4) 上工作,它是一种特殊的 DB2。

如果您正在使用或连接到 iSeries (AS/400),Anton 提到的链接非常好(抱歉,还不能投票!)

Describe 不适用于 iSeries,但可以在其他平台上与 DB2 一起使用。

于 2009-02-27T14:31:43.727 回答
2
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' 
于 2014-03-27T06:38:41.947 回答
0

为我工作:

select * from sysibm.columns
where table_schema = 'MY_SCHEMA'
于 2017-09-19T10:55:23.877 回答