如何在DB2数据库中查看表结构
答案 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)
控制中心已经具备了这一功能。它就在表格列表的下方。
答案 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)
按照以下简单步骤: