DB2--初步学习之系统表

DB2 系统表的功能

               -------由于项目需求要求支持DB2数据库,所以今天就初步接触了一些,本文主要记录的是系统表相关的学习笔记和网文摘录.

 

在 DB2 数据库被创建的时候,DB2 会创建一些系统表。这些系统表中记录了所有数据库对象的信息,表或视图的列的数据类型,约束的定义,对象的权限和对象之间的依赖关系等。这些系统表的模式为 SYSIBM,其表名以 SYS 作为前缀。例如: SYSTABLES、SYSVIEWS 等等。DB2 为这些系统表建立了相对应的只读视图。这些视图的模式是 SYSCAT,它们的内容是其相对应的系统表的全部或者部分内容。这些视图的名字没有 SYS 的前缀。例如:SYSCAT.TABLES 是 SYSIBM.SYSTABLES 的视图。我们可以通过 LIST TABLES FOR SYSTEM 或 LIST TABLES FOR SCHEMA schemaname 命令查看所有的系统表和相关的视图信息。

其所有的系统表目录可以在以下网站查看:

http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=/com.ibm.db2.udb.admin.doc/doc/r0011297.htm

SYSCAT.TABLES:数据库中对象的信息,包括 table,view,nickname 和 alias 的一些定义。详细说明见表 1。

表 1. SYSCAT.TABLES 视图的说明
列名数据类型描述
TABSCHEMA VARCHAR(128) 记录 schema 的名字
TABNAME VARCHAR(128) 记录数据库对象的名称。包括表、视图、别名等
TYPE CHAR(1) 表示该数据库对象是表,视图还是别名 ('T'表示table; 'V'表示 view; 'N' 表示nickname; 'A' 表示 alias。)
COLCOUNT SMALLINT 表或视图中列的个数
……

SYSCAT.VIEWS:视图的定义信息。详细说明见表 2。


表 2. SYSCAT.VIEWS 视图的说明
列名数据类型描述
VIEWSCHEMA VARCHAR(128) 视图的 Schema
VIEWNAME VARCHAR(128) 视图名称
READONLY CHAR(1) 视图是否只读:
  • Y = 视图是只读
  • N = 视图不是只读
VALID CHAR(1) 视图状态是否合法:
  • Y = 视图状态合法(valid)
  • X = 视图状态不合法(invalid)
TEXT CLOB (64K) 视图的源程序(DDL)
……

SYSCAT.ROUTINES:DB2 UDF,系统方法(system-generated method),用户定义方法(user-defined method)和存储过程(SP)的定义。我们可以认为该视图包含了数据库中程序的定义。见表 3。


表 3. SYSCAT.ROUTINES 视图的说明
列名数据类型描述
ROUTINESCHEMA VARCHAR(128) 记录程序的 schema
ROUTINENAME VARCHAR(128) 记录程序名称
ROUTINETYPE CHAR(1) 记录程序类型:
  • F = Function
  • M = Method
  • P = Procedure
SPECIFICNAME VARCHAR(128) 程序实例的名称(可以指定,也可以由系统自动生成)
VALID CHAR(1) 如果存储过程依赖的一些对象被删除或修改了,该存储过程必须要被重建
  • Y = SQL 存储过程是合法的
  • N = SQL 存储过程是非法的
  • X = SQL 存储过程是不可操作的
TEXT CLOB(1M) 如果是用 SQL 编写的程序,该字段记录了其创建的 DDL

表 4 所示的 SYSCAT.ROUTINEDEP 说明了 DB2 UDF与其他对象的依赖关系。


表 4. SYSCAT.ROUTINEDEP 视图的说明
列名数据类型描述
ROUTINESCHEMA VARCHAR(128) 依赖于其他对象的 DB2 程序的 schema
ROUTINENAME VARCHAR(128) 依赖于其他对象的 DB2 程序的名称
BTYPE CHAR(1) 依赖对象的类型:
  • A = Alias
  • S = Materialized query table
  • T = Table
  • V = View
BSCHEMA VARCHAR(128) 被依赖的对象的 schema
BNAME VARCHAR(128) 被依赖的对象的名称

表 5 所示的 SYSCAT.COLUMNS 说明了表或视图的每一个列的信息。


表 5. SYSCAT.COLUMNS 视图的说明
列名数据类型描述
TABSCHEMA VARCHAR(128) 表或视图的 Schema
TABNAME VARCHAR(128) 表或视图名称
COLNAME VARCHAR(128) 列名称
KEYSEQ SMALLINT 记录列在其表的主键的位置
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值