WEB开发网
开发学院数据库DB2 DB2 基础: 如何从 DB2 UDB 系统编目中获得有用的信... 阅读

DB2 基础: 如何从 DB2 UDB 系统编目中获得有用的信息

 2010-07-20 00:00:00 来源:WEB开发网   
核心提示: 可以构造很多其他的查询来检索授权数据,下面是另外两个例子: 清单 5. 检索授权数据connecttosample检索所有被显式地授予DBADM权限的授权名称:selectdistinctgranteefromsyscat.dbauthwheredbadmauth='Y'检索授给

可以构造很多其他的查询来检索授权数据。下面是另外两个例子:

清单 5. 检索授权数据

connect to sample 
    检索所有被显式地授予 DBADM 权限的授权名称: 
select distinct grantee from syscat.dbauth 
 where dbadmauth = 'Y' 
    检索授给其他用户的一组表权限: 
select * from syscat.tabauth where grantor = user 
connect reset 

检索数据类型和例程数据

可以使用系统编目视图来轻松地检索关于用户定义数据类型或例程的信息。例如:

清单 6. 检索数据类型和例程数据

connect to sample 
    检索关于所有用户定义类型(即不属于 SYSIBM 模式的类型)的信息: 
select typeschema, typename, sourcename, metatype from syscat.datatypes 
 where typeschema != 'SYSIBM' 
    检索关于所有用户定义例程(即所属模式的名称不是以 SQL 或 SYS 开头的例程)的信息: 
select routineschema, routinename, routinetype, origin, language, text 
 from syscat.routines 
 where substr(routineschema,1,3) != 'SQL' and substr(routineschema,1,3) != 'SYS' 
connect reset 

检索约束数据

也可以使用系统编目视图来检索关于 NOT NULL、惟一、主键、外键和表检查约束的信息。例如:

清单 7. 检索约束数据

connect to sample 
    检索由用户 MELNYK 创建的表中所有不能为空的一组列: 
select substr(tabname,1,16) as tabname, substr(colname,1,16) as colname, nulls 
 from syscat.columns 
 where tabschema = 'MELNYK' and nulls = 'N' 
    检索其上定义了惟一性约束(不是主键约束)的一组表: 
"select substr(tabschema,1,16) as tabschema, substr(tabname,1,16) as tabname, keyunique 
 from syscat.tables 
 where keyunique > 0" 
    检索所有为 SAMPLE 数据库定义的主键。如果一个列是它所属表的主键的一部分, 
那么 KEYSEQ 包含一个非空的值。该值表示这个列在主键中所处的以数字表示的位置: 
select substr(tabschema, 1, 16) as tabschema, substr(tabname, 1, 16) as tabname, 
  substr(colname, 1, 16) as colname, keyseq 
 from syscat.columns 
 where keyseq is not null 
    检索参与由惟一性、主键或外键约束定义的一个键的所有列。识别约束名和类型, 
以及该列在键中所处的以数字表示的位置(起始位置是 1): 
select substr(k.constname,1,20) as constname, t.type, substr(k.tabname,1,20) as tabname, 
  substr(k.colname,1,16) as colname, k.colseq 
 from syscat.keycoluse k, syscat.tabconst t 
 where k.constname = t.constname 
    检索每个表检查约束: 
select substr(constname,1,20) as constname, substr(tabname,1,20) as tabname, 
  substr(text,1,32) as text 
 from syscat.checks 
connect reset 

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:DB 基础 如何

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接