Ben*_*Ben 39 sql db2 database-schema
我只是在寻找一个简单的查询来选择给定模式的所有表名.
例如,我们的DB有超过100个表,我需要找到包含子字符串"CUR"的任何表.拥有所有表后,我可以使用like命令.
pax*_*blo 70
select * from sysibm.systables
where owner = 'SCHEMA'
and name like '%CUR%'
and type = 'T';
Run Code Online (Sandbox Code Playgroud)
这将为您提供架构CUR中的所有表SCHEMA.
有关该表的更多详细信息,请参见此处SYSIBM.SYSTABLES.如果您查看左侧的导航窗格,您可以获得各种精彩的DB2元数据.
请注意,此链接适用于大型机DB2/z.DB2/LUW(Linux/UNIX/Windows one)的列略有不同.为此,我相信你想要CREATOR专栏.
在任何情况下,您都应该检查特定变体的IBM文档.表名几乎肯定不会改变,所以只需查看SYSIBM.SYSTABLES详细信息.
Ber*_*ert 21
在我的iSeries上,我必须从iNavigator运行此命令:
select *
from QSYS2.SYSTABLES
where TABLE_SCHEMA
like 'SCHEMA_NAME'
and TYPE = 'T';
Run Code Online (Sandbox Code Playgroud)
小智 11
你应该试试这个:
select TABNAME from syscat.tables where tabschema = 'yourschemaname'";
Run Code Online (Sandbox Code Playgroud)
使用DB2命令(无SQL)可以执行
db2 LIST TABLES FOR ALL
Run Code Online (Sandbox Code Playgroud)
这显示了数据库中所有模式中的所有表.
对于Db2 for Linux、Unix 和 Windows(即 Db2 LUW)或Db2 Warehouse,请使用SYSCAT.TABLES目录视图。例如
SELECT TABSCHEMA, TABNAME FROM SYSCAT.TABLES WHERE TABSCHEMA LIKE '%CUR%' AND TYPE = 'T'
Run Code Online (Sandbox Code Playgroud)
这是一条 SQL 语句,它将返回包含 substring 的所有模式中的所有标准表CUR。从 Db2 命令行,您还可以使用 CLP 命令,例如db2 list tables for all | grep CUR达到类似效果
此页面描述了SYSCAT.TABLES中的列,包括该列的不同值TYPE。
A = Alias
G = Created temporary table
H = Hierarchy table
L = Detached table
N = Nickname
S = Materialized query table
T = Table (untyped)
U = Typed table
V = View (untyped)
W = Typed view
Run Code Online (Sandbox Code Playgroud)
其他常用的目录视图包括
SYSCAT.COLUMNS Lists the columns in each table, view and nickname
SYSCAT.VIEWS Full SQL text for view and materialized query tables
SYSCAT.KEYCOLUSE Column that are in PK, FK or Uniuqe constraints
Run Code Online (Sandbox Code Playgroud)
在 Db2 LUW 中,使用SYSIBM目录表(SYSCAT目录视图从中选择数据)被认为是不好的做法。就列名而言,它们不太一致,不太容易使用,没有记录,并且更可能在版本之间发生变化。
此页面包含所有目录视图的列表 目录视图的路线图
对于Db2 for z/OS,请使用此处SYSIBM.TABLES描述的。例如
SELECT CREATOR, NAME FROM SYSIBM.SYSTABLES WHERE OWNER LIKE '%CUR%' AND TYPE = 'T'
Run Code Online (Sandbox Code Playgroud)
对于Db2 for i(即 iSeries aka AS/400)使用QSYS2.SYSTABLES,此处描述
SELECT TABLE_OWNER, TABLE_NAME FROM QSYS2.SYSTABLES WHERE TABLE_SCHEMA LIKE '%CUR%' AND TABLE_TYPE = 'T'
Run Code Online (Sandbox Code Playgroud)
对于DB2 Server for VSE 和 VM 的使用SYSTEM.SYSCATALOG,此处描述了DB2 Server for VSE 和 VM SQL 参考
SELECT CREATOR, TNAME FROM SYSTEM.SYSCATALOG WHERE TABLETYPE = 'R'
Run Code Online (Sandbox Code Playgroud)