在DB2中显示表的定义

时间:2009-02-14 04:39:30

标签: db2

大家好,我正在学习DB2,想知道如何做 在我创建表之后查看表的特征。

与MySQL中的EXPLAIN TABLE命令类似。

谢谢。

11 个答案:

答案 0 :(得分:11)

除DESCRIBE TABLE外,您还可以使用以下

DESCRIBE INDEXES FOR TABLE *tablename* SHOW DETAIL 

获取有关表索引的信息。

有关DB2 for Linux,UNIX和Windows的表的最全面的详细信息可以从db2look实用程序获得,该实用程序可以从远程客户端运行,也可以作为本地用户直接在DB2服务器上运行。该工具生成DDL和模拟表及其统计数据所需的其他信息。 DB2 9.5中db2look的文档是here

以下db2look命令将连接到SALESDB数据库并获取重新创建ORDERS表所需的DDL命令

db2look -d SALESDB -e -t ORDERS

答案 1 :(得分:9)

我知道这是一个老问题,但这可以胜任。

SELECT colname, typename, length, scale, default, nulls
  FROM syscat.columns
 WHERE tabname = '<table name>'
   AND tabschema = '<schema name>'
 ORDER BY colno

答案 2 :(得分:6)

db2look -d&lt; db_name&gt; -e -z&lt; schema_name&gt; -t&lt; table_name&gt; -i&lt; user_name&gt; -w&lt; password&gt; &GT; &LT; FILE_NAME&GT; .SQL

有关详细信息,请参阅以下内容:

    db2look [-h]

    -d: Database Name: This must be specified

    -e: Extract DDL file needed to duplicate database
   -xs: Export XSR objects and generate a script containing DDL statements
 -xdir: Path name: the directory in which XSR objects will be placed
    -u: Creator ID: If -u and -a are both not specified then $USER will be used
    -z: Schema name: If -z and -a are both specified then -z will be ignored
    -t: Generate statistics for the specified tables
   -tw: Generate DDLs for tables whose names match the pattern criteria (wildcard characters) of the table name
   -ap: Generate AUDIT USING Statements
  -wlm: Generate WLM specific DDL Statements
  -mod: Generate DDL statements for Module
  -cor: Generate DDL with CREATE OR REPLACE clause
 -wrap: Generates obfuscated versions of DDL statements
    -h: More detailed help message
    -o: Redirects the output to the given file name
    -a: Generate statistics for all creators
    -m: Run the db2look utility in mimic mode
        -c: Do not generate COMMIT statements for mimic
        -r: Do not generate RUNSTATS statements for mimic
    -l: Generate Database Layout: Database partition groups, Bufferpools and Tablespaces
    -x: Generate Authorization statements DDL excluding the original definer of the object
   -xd: Generate Authorization statements DDL including the original definer of the object
    -f: Extract configuration parameters and environment variables
   -td: Specifies x to be statement delimiter (default is semicolon(;))
    -i: User ID to log on to the server where the database resides
    -w: Password to log on to the server where the database resides

答案 3 :(得分:5)

描述表的语法

db2 describe table <tablename>

或 对于所有表格详细信息

select * from syscat.tables

或 对于所有表格详细信息

 select * from sysibm.tables

答案 4 :(得分:3)

所有元数据都保存在SYSIBM'架构'的DB2目录表中。它因DB2 / z大型机产品和DB2 / LUW分布式产品而异,但随着每个版本的发布,它们越来越近。

IBM方便地将所有手册放在publib网站上供全世界访问。我的专业领域DB2 / z拥有您想要的页面here

您需要参考许多表格:

SYSTABLES        for table information.
SYSINDEXES    \
SYSINDEXPART   + for index information.
SYSKEYS       /
SYSCOLUMNS       for column information.

所有信息中心的列表都是here,如果这是您感兴趣的领域,它应该指向DB2 / LUW版本。

答案 5 :(得分:2)

右键单击DB2 Control Center中的表,然后选择Generate DDL ...这将为您提供所需的一切以及更多。

答案 6 :(得分:1)

描述表格语法

describe table schemeaName.TableName

答案 7 :(得分:1)

尝试以下方法:

DESCRIBE SELECT * FROM TABLE_name

答案 8 :(得分:1)

您可以使用以下命令查看DB的完整特征

db2look -d <DB NAme>-u walid -e -o

您可以使用以下命令查看Schema的完整特征

 db2look -d <DB NAme> -u walid -z <Schema Name> -e -o

您可以使用以下命令查看表的完整特征

db2look -d <DB NAme> -u walid -z <Schema Name> -t <Table Name>-e -o

您还可以访问以下链接了解更多详情。 https://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=%2Fcom.ibm.db2.udb.admin.doc%2Fdoc%2Fr0002051.htm

答案 9 :(得分:1)

我刚刚遇到此查询来描述winsql中的表

select NAME,TBNAME,COLTYPE,LENGTH,REMARKS,SCALE from sysibm.syscolumns
where tbcreator = 'Schema_name' and tbname='Table_name' ;

答案 10 :(得分:0)

DB2 Version 11.0

Columns:
--------
SELECT NAME,COLTYPE,NULLS,LENGTH,SCALE,DEFAULT,DEFAULTVALUE FROM SYSIBM.SYSCOLUMNS where TBcreator ='ME' and TBNAME ='MY_TABLE' ORDER BY COLNO;

Indexes:
--------
SELECT P.SPACE, K.IXNAME, I.UNIQUERULE, I.CLUSTERING, K.COLNAME, K.COLNO, K.ORDERING
FROM SYSIBM.SYSINDEXES I
    JOIN SYSIBM.SYSINDEXPART P
        ON I.NAME = P.IXNAME
        AND I.CREATOR = P.IXCREATOR
    JOIN SYSIBM.SYSKEYS K
        ON P.IXNAME = K.IXNAME
        AND P.IXCREATOR = K.IXCREATOR
WHERE I.TBcreator ='ME' and I.TBNAME ='MY_TABLE'
ORDER BY K.IXNAME, K.COLSEQ;