db2 系统表信息
|字号
DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。在 Windows 系统中,必须先(从普通命令窗口)运行 db2cmd 命令来启动 DB2 命令行环境。
脚本的优势在于可以重复执行。如果一个任务会被执行多次,或者被多人执行。那么将该任务编写成脚本会提高任务的执行效率和准确性。本文介绍的脚本都是一些在我们进行存储过程开发和调试中经常用到的。读者在后面会渐渐体会到脚本给我们带来的便利。
编写针对 DB2 的脚本,我们需要首先了解 DB2 为我们提供了哪些命令和信息。DB2 为我们提供了大量的命令例如连接数据库,执行一个 SQL 文件,获得表结构的信息等等。我们会在下面解释具体的脚本的同时对一些简单的 DB2 命令进行解释说明。同时,DB2 把数据库对象的很多信息都存储到了系统表中。熟悉这些系统表就能够通过 SQL 语句获得我们需要的信息。下面我们先来学习一下 DB2 系统表。
在 DB2 数据库被创建的时候,DB2 会创建一些系统表。这些系统表中记录了所有数据库对象的信息,表或视图的列的数据类型,约束的定义,对象的权限和对象之间的依赖关系等。这些系统表的模式为 SYSIBM,其表名以 SYS 作为前缀。例如: SYSTABLES、SYSVIEWS 等等。DB2 为这些系统表建立了相对应的只读视图。这些视图的模式是 SYSCAT,它们的内容是其相对应的系统表的全部或者部分内容。这些视图的名字没有 SYS 的前缀。例如:SYSCAT.TABLES 是 SYSIBM.SYSTABLES 的视图。
我们可以通过 LIST TABLES FOR SYSTEM
或 LIST TABLES FOR SCHEMA schemaname
命令查看所有的系统表和相关的视图信息。下面我们会介绍一些本文用到的系统表和视图。
SYSCAT.TABLES:数据库中对象的信息,包括 table,view,nickname 和 alias 的一些定义。详细说明见表 1。
表 1. SYSCAT.TABLES 视图的说明
VARCHAR(128) | 记录 schema 的名字 |
VARCHAR(128) | 记录数据库对象的名称。包括表、视图、别名等 |
CHAR(1) | 表示该数据库对象是表,视图还是别名 ('T'表示table; 'V'表示 view; 'N' 表示nickname; 'A' 表示 alias。) |
SMALLINT | 表或视图中列的个数 |
SYSCAT.VIEWS:视图的定义信息。详细说明见表 2。
表 2. SYSCAT.VIEWS 视图的说明
VARCHAR(128) | 视图的 Schema |
VARCHAR(128) | 视图名称 |
CHAR(1) | 视图是否只读:
|
CHAR(1) | 视图状态是否合法:
|
CLOB (64K) | 视图的源程序(DDL) |
SYSCAT.ROUTINES:DB2 UDF,系统方法(system-generated method),用户定义方法(user-defined method)和存储过程(SP)的定义。我们可以认为该视图包含了数据库中程序的定义。见表 3。
表 3. SYSCAT.ROUTINES 视图的说明
VARCHAR(128) | 记录程序的 schema |
VARCHAR(128) | 记录程序名称 |
CHAR(1) | 记录程序类型:
|
VARCHAR(128) | 程序实例的名称(可以指定,也可以由系统自动生成) |
CHAR(1) | 如果存储过程依赖的一些对象被删除或修改了,该存储过程必须要被重建
|
CLOB(1M) | 如果是用 SQL 编写的程序,该字段记录了其创建的 DDL |
表 4 所示的 SYSCAT.ROUTINEDEP 说明了 DB2 UDF与其他对象的依赖关系。
表 4. SYSCAT.ROUTINEDEP 视图的说明
VARCHAR(128) | 依赖于其他对象的 DB2 程序的 schema |
VARCHAR(128) | 依赖于其他对象的 DB2 程序的名称 |
CHAR(1) | 依赖对象的类型:
|
VARCHAR(128) | 被依赖的对象的 schema |
VARCHAR(128) | 被依赖的对象的名称 |
表 5 所示的 SYSCAT.COLUMNS 说明了表或视图的每一个列的信息。
表 5. SYSCAT.COLUMNS 视图的说明
VARCHAR(128) | 表或视图的 Schema |
VARCHAR(128) | 表或视图名称 |
VARCHAR(128) | 列名称 |
SMALLINT | 记录列在其表的主键的位置 |
表 6 所示的 SYSCAT.PACKAGEDEP 说明了 Pachage 与其他数据库对象的依赖关系。
表 6. SYSCAT.PACKAGEDEP 视图的说明
VARCHAR(128) | Package 的 schema |
VARCHAR(18) | Package 的名称 |
CHAR(1) | 依赖对象的类型:
|
VARCHAR(128) | 被依赖的对象的 schema |
VARCHAR(128) | 被依赖的对象的名称 |
表 7 所示的 SYSCAT.TABDEP 说明了视图或者固化视图和 DB2 对象之间的依赖关系。
表 7. SYSCAT.TABDEP 视图的说明
VARCHAR(128) | 视图或者固化视图的 schema |
VARCHAR(128) | 视图或者固化视图的名称 |
CHAR(1) | 视图的类型:
|
CHAR(1) | 依赖对象的类型:
|
相关推荐
db2系统表、视图说明,sysibm.systables,sysibm.syscolumns,syscat.tables,syscat.columns,我们可以通过 LIST TABLES FOR SYSTEM 或 LIST TABLES FOR SCHEMA schemaname 命令查看所有的系统表和相关的视图信息。...
db2表空间不足及处理
这是某银行 DB2 系统发生的一次真实案例,SQL 语句执行时间变长,最后发现“罪魁祸首”竟是 DB2 系统临时表空间过大。本文将介绍这个性能问题的分析处理过程,如何逐步定位问题根本原因,并提供了解决方法。这其中...
检查db2表空间是否不足已经处理的方法,具体怎么查看表空间是否已经被占满已经具体的解决方法在文档中都有说明。。
DB2官方的指南,db2系统表,管理命令等都有详细说明
"DB2数据库系统加固规范" DB2数据库系统加固规范是指对DB2数据库系统进行安全加固的规范和要求,该规范旨在确保DB2数据库系统的安全性和可靠性。本规范涵盖了账号管理、认证授权、日志配置、设备其他安全要求等多个...
记录db2 裸设备扩容归档 (文件系统)和表空间(裸设备)的过程。aix上操作截图
DB2表空间管理方式分为两种:系统管理空间(System Management Space,SMS)和数据库管理空间(Database Management Space,DMS)
本文档主要讲述了使用DB2实现表的创建和空间的创建,由艾孜尔江·艾尔斯兰亲自实践亲测可执行后撰著成文档,后续仍有诸多相关文档的更新,尽请关注。 DB2主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型...
删除数据库:db2 drop database <db_name> (如果不能删除,尝试断开激活的连接或者重启db2) 列出系统表:db2 list tables for system 列出所有用户表:db2 list tables 列出所有表:db2 list tables for all 列出...
db2数据库系统加固规范
DB2数据库数据库教学管理系统 课程设计 有代码
db2启动错误db2启动错误db2启动错误db2启动错误db2启动错误db2启动错误
DB2 V10 管理学习书籍,对于学习DB2很有帮助,供学习参考
牛新庄--循序渐进DB2系统管理运维与应用案例
LINUX系统DB2安装方法
1.DB2产品及其发展历程 2.DB2系统基础知识
list tables for system -- 列出所有系统表 6. 列出表空间 db2 list tablespaces -- 列出表空间 7. 高级查询 fetch first 10 rows only -- 列出表中前 10 条数据 coalesce(字段名,转换后的值) -- 对是 null 的...
DB2 UDB is available on a variety of platforms, including -large systemssuch as z/OS, OS/390, VM, and VSE -mid-sized systemssuch as AS/400, AIX, and Solaris -single or LAN-based systemssuch as Windows...