DB2 中的数据对象

以下内容摘选自http://www.ibm.com/developerworks/cn/data/books/db2dba1/3/index.html,记下来以备忘!

3.3.6 实例级别的常用命令

实例级别的常用命令如表 3.1 所示。


表 3.1 实例级别常用命令
命令名称 描述
GET DBM CFG [SHOW DETAIL] 返回数据库管理器的参数设置
UPDATE DBM CFG USING < 参数 > < 值 > 将数据库管理器的某个参数设置为新的值
db2icrt < 实例名 > 创建实例
db2idrop < 实例名 > 删除实例
db2ilist 列示实例
GET INSTANCE Windows 中获取当前实例名称
set DB2INSTANCE=< 实例名 > Windows 中切换实例
db2start 启动当前实例
db2stop 停止当前实例
db2iauto - < 实例名 > UNIX 或 Linux 下设置某个实例是否自动启动
ATTACH TO < 实例名 > [USER < 用户名 >] [USING < 密码 >] 附接到指定的实例进行远程操作
DETACH 断开与当前实例的附接
LIST ACTIVE DATABASES 列出活动的数据库和连接数量
LIST APPLICATION [SHOW DETAIL] 返回当前连接的应用程序的信息
FORCE APPLICATION[S] ALL 断开与所有应用程序的连接
FORCE APPLICATION (< 句柄 1>[,< 句柄 2>, … ,< 句柄 n>]) 断开指定句柄的应用程序的连接
db2admin start 启动管理服务器实例
db2admin stop 停止管理服务器实例
CATALOG LOCAL NODE < 节点名 > INSTANCE < 实例名 > 编目实例作为本地节点
CATALOG TCPIP NODE < 节点名 > REMOTE < 主机名 > SERVER < 端口号 > 编目远程实例作为本地节点

注:表格中大写的命令表示该命令是 DB2 级的,可以直接在命令行处理器中执行,小写的命令表示该命令是系统级的,需要在命令窗口中执行,而且在 UNIX 或 Linux 下必须小写,而在 Windows 下不区分大小写。


3.4.6 数据库级别的常用命令

数据库级别的常用命令如表 3.2 所示。


表 3.2 数据库级别的常用命令
命令名称 描述
GET DB CFG FOR < 数据库名称 > 返回指定数据库的参数设置
UPDATE DB CFG FOR < 数据库名 > USING < 参数 > < 值 > 将指定数据库的某个参数设置为新的值
CREATE DATABASE < 数据库名称 > 创建数据库
DROP DB < 数据库名 > 删除数据库
ACTIVATE DATABASE < 数据库名称 > 激活指定数据库
DEACTIVATE DATABASE < 数据库名称 > 停止指定数据库
CONNECT TO < 数据库名称 > [user < 用户名 >] [using < 密码 >] 连接到指定的数据库
CONNECT RESET 断开与当前数据库的连接
DISCONNECT < 数据库名称 > 断开与指定数据库的连接
TERMINATE 断开与数据库的连接并初始化客户端
CATALOG DB < 数据库名 > AT NODE < 节点名 > 编目数据库

注:该表格中所有命令都是 DB2 级命令,可以直接在命令行处理器中执行。


3.8.2 用户临时表

用 户临时表又称为已声明的全局临时表(Declared Global Temporary Table,简称 DGTT),与普通的用户表不同,用户临时表并不是一直存储在硬盘上,而是在一个应用程序结束之后,与之相关的用户临时表会自动从系统中删除。另外,用户 临时表还有一些安全性和性能上的优势,如:

(1)一个用户(或者应用程序)定义的用户临时表不会被其他用户(或者应用程序)看到;

(2)在对用户临时表操作的时候,可以记录事务日志,也可以不记录事务日志;

(3)不进行系统编目;

(4)没有行锁;

(5)不进行权限检查。

在使用用户临时表的时候容易引起误解的是,它仍然支持索引,可以在它上面创建任何标准的索引,同时它也支持统计,可以对它进行 RUNSTATS 操作

3.9.2 视图的 WITH CHECK OPTION 选项

使用 WITH CHECK OPTION 选项可以在视图上指定一个约束,该约束在通过视图进行数据插入和修改时会起作用。

上 一节讲到,视图当中不保存数据,但是我们可以通过视图对数据进行操纵,实际上是对视图所对应的基本表中的数据进行操纵。创建视图的时候在子查询中可能包含 一个 WHERE 子句,这个子句指定的条件可以看成一个大门,如果加上了 WITH CHECK OPTION 选项,就要求数据必须通过这个大门进入,否则的话,数据可以不通过这个大门(不满足 WHERE 子句的条件)进入到基本表中。

例 3‑14 带 WITH CHECK OPTION 选项的视图。

创 建一个名为 empsalary 的视图,包含薪水(salary)高于 4000 元的职员的编号(empno)、名字(firstnme)、姓氏(lastname)、教育级别(edlevel)、性别(sex)、薪水 (salary)和奖金(bonus)等信息,并且要求不能通过该视图向职员表 employee 中插入薪水不高于 4000 元的记录。

 CREATE VIEW empsalary AS 
SELECT empno, firstnme, lastname, edlevel, sex, salary, bonus FROM employee
WHERE salary>4000
WITH CHECK OPTION

按照上面的语句把视图创建成功,然后分别执行如下两条插入语句:

 INSERT INTO empsalary VALUES('800101', 'Winter', 'Green', 15, 'M', 5000, 700) 
INSERT INTO empsalary VALUES('800102', 'Jack', 'Liu', 13, 'F', 3500, 300)

会发现第一条语句能够执行成功,而第二条语句执行时报错:插 入或更新操作的结果行不符合视图定义。这就说明在通过视图向表中插入数据时,由于视图在创建的时候使用了 WITH CHECK OPTION 子句,就会强制执行条件检查,对于不满足条件的数据,不允许通过视图进入到基本表中。

视图可以嵌套,即在视图的基础上再创建视图,此时视图是否有强制检查选项,需要根据这两个视图创建的定义来确定。


3.9.3 可更新视图

对 视图的操作实际上是对后台的基本表中数据进行操作,这些数据有可能来自于一张表,也可能来自于多张表,一般来说,只有当视图来自于一张表中的某些字段时, 才能够通过该视图对数据进行操作。判断一个视图是否可更新,主要看其在创建的时候指定的子查询。子查询必须满足以下条件:

(1) 其 FROM 子句基于一张表、一个可更新的嵌套表表达式(参见第 4 章)或者一个可更新的公共表表达式(参见第 4 章);

(2) 不使用 GROUP BY 和 HAVING 子句;

(3) SELECT 选择的列中不包括列函数;

(4) 不使用集合操作 UNION,EXCEPT 和 INTERSECT,但可以使用 UNION ALL;

(5) 不使用 DISTINCT;

(6) 不满足以上条件的视图称为只读视图,在 SYSCAT.VIEW 中标记为 READONLY 的视图就是只读视图。

需要注意的是,一个可更新视图只是在理论上可以进行更新,但实际通过该视图对基本表的数据进行操作时,能否操作成功还要看是否违反了基本表上定义的约束条件。

3.11.1 数值型

数值型具体划分如图 3.19 所示。


图 3.19 数值型数据的种类
图 3.19  数值型数据的种类

3.11.2 字符型

字符型具体划分如 3.20 所示。


图 3.20 字符型数据的种类
图 3.20  字符型数据的种类

3.17 专用寄存器

DB2 提供了很多专用寄存器,这些寄存器记录了各种系统信息,可以像变量一样进行查询和修改(有些专用寄存器不允许修改)。可以使用 VALUES 语句查询各个专用寄存器的值:

VALUES < 专用寄存器名称 >

专用寄存器可以用在 SQL 语句中,有些专用寄存器的值可以修改,有些不能,常用的专用寄存器请参见表 3.3。


表 3.3 DB2 V9 中常用的专用寄存器
专用寄存器名称 作用 是否可更新
CURRENT CLIENT_APPLNAME 当前客户端连接的应用程序名称 No
CURRENT CLIENT_USERID 当前客户端连接的用户 ID No
CURRENT CLIENT_WRKSTNNAME 当前连接的工作站名称 No
CURRENT DATE 数据库服务器的当前日期 No
CURRENT ISOLATION 当前隔离级 Yes
CURRENT LOCK TIMEOUT 当前锁等待时间(单位为秒) Yes
CURRENT QUERY OPTIMIZATION 当前优化级别 Yes
CURRENT SCHEMA 当前模式 Yes
CURRENT SERVER 当前应用服务器 No
CURRENT TIME 数据库服务器当前时间 No
CURRENT TIMESTAMP 当前时间戳 No
CURRENT TIMEZONE 当前时区 No
USER 当前用户 Yes

能够修改值的专用寄存器的修改方法也不尽相同,具体修改方式请参见信息中心。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11976525/viewspace-674313/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/11976525/viewspace-674313/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值