如何查看DB2 Table结构

时间:2010-06-04 10:15:28

标签: db2

如何在DB2数据库中查看表结构

19 个答案:

答案 0 :(得分:53)

我从sysibm.syscolumns

得到了答案
Select distinct(name), ColType, Length from Sysibm.syscolumns where tbname = 'employee';

答案 1 :(得分:21)

通常最简单的方法是使用DESCRIBE。

DESCRIBE TABLE MYSCHEMA.TABLE

DESCRIBE INDEXES FOR MYSCHEMA.TABLE SHOW DETAIL

参见文档: DESCRIBE command

答案 2 :(得分:4)

在DB2中,输入db2命令提示符。

  db2  =>  describe  table MyTableName

答案 3 :(得分:4)

以下命令也适用:

describe SELECT * FROM table_name;

其中select语句可以替换为任何其他select语句,这对于具有select的复杂插入非常有用。

答案 4 :(得分:3)

  

如何在db2数据库中查看表结构

打开db2命令窗口,使用以下命令连接到db2。

> db2 connect to DATABASE_NAME USER USERNAME USING PASSWORD

成功连接后,发出以下命令以查看表结构。

> db2 "describe select * from SCHEMA_NAME.TABLE_NAME"

上面的命令将以表格格式显示db2表结构。

注意:在DB2 Client 9.7.11上测试

答案 5 :(得分:3)

对于IBM DB2 10.7版本中的表描述,我试过这个并且工作得很好

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

答案 6 :(得分:3)

1.使用db2 describe table

  db2 describe table tabschema.tabname

2.使用db2描述输出

  db2 "describe select * from tabschema.tabname"

3.使用db2look实用程序

  db2look -d dbname -e -t tabname

4.find db2 syscat中的行

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

答案 7 :(得分:2)

iSeries的php示例(as400)db2,是的,这有效!

$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);

答案 8 :(得分:2)

您可以使用此查询获取表元数据

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

答案 9 :(得分:1)

控制中心已经具备了这一功能。它就在表格列表的下方。

enter image description here

答案 10 :(得分:1)

使用以下内容检查单个表的表描述

DESCRIBE TABLE Schema Name.Table Name

加入下面的表来检查多个表的表描述,并使用表id加入 syscat.tables和syscat.columns

您还可以使用以下命令检查表中索引的详细信息 描述表的索引。显示细节

答案 11 :(得分:1)

如果你正在使用Aqua Data studio,只需从table_name中选择select *而不是按execute,按ctrl + D.

您将能够看到表格的描述

答案 12 :(得分:1)

获取所有表:(您可能希望将模式限制为模式)

select * from syscat.tables

获取所有列:(其中tabname = your_tabname)

select * from syscat.columns

答案 13 :(得分:0)

许多人已经提到的最简单的方法是做一个DESCRIBE TABLE

但是,您也可以从

获得相同的+附加信息
db2> SELECT * SYSCAT.TABLES

db2> SELECT * FROM SYSCAT.COLUMNS

我通常使用SYSCAT.COLUMNS来查找我已经知道列名的数据库中的相关表:)

如果要获取特定表或整个数据库的DDL,另一个好方法是使用db2look

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

这将为您生成“.out”文件,该文件将包含特定表的DDL脚本。

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

这将生成整个数据库的DDL作为单个脚本文件,这通常用于复制数据库,“ - e”表示想要导出DDL适合在新数据库中重新创建完全相同的设置。

希望这可以帮助寻找这些答案的人:)

答案 14 :(得分:0)

我正在运行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

答案 15 :(得分:0)

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'

答案 16 :(得分:0)

我使用的是Aquadata Studio 12.0.23,它是最新版本的几个版本。所以你的经历可能比我的好。我发现获得概述的最佳方法是使用ERD生成器。花了几个小时,因为标准化不是30年前这个数据库设计中使用的概念。 我能够在几个小时内获得所有对象的定义,每个对象都有一个文件。

答案 17 :(得分:0)

OP没有提到这是否正在讨论DB2 / 400,但我发现我可以获得包括列名描述的表结构的唯一方法是使用DSPFFD。

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

这将TBNAME的描述放在SOMELIB库中名为TBDESC的表中。然后,您可以使用以下方式查询:

select * from SOMELIB/TBDESC

答案 18 :(得分:-1)

按照以下简单步骤:

  1. 选择浏览器窗口。
  2. 提取(展开)它。
  3. 选择并提取(展开)表格列表。
  4. 选择所需的表并解压缩(展开)。
  5. 双击代码选项,它会打开表格结构。