分类:
2007-07-31 20:47:09
DB2常用命令(一)
//建立数据库DB2_GCB
CREATE DATABASE DB2_GCB ON G: ALIAS DB2_GCB
USING CODESET GBK TERRITORY CN COLLATE USING SYSTEM DFT_EXTENT_SZ 32
//连接数据库
connect to sample1 user db2admin using 8301206
//建立别名
create alias db2admin.tables for sysstat.tables;
CREATE ALIAS DB2ADMIN.VIEWS FOR SYSCAT.VIEWS
create alias db2admin.columns for syscat.columns;
create alias guest.columns for syscat.columns;
//建立表
create table zjt_tables as
(select * from tables) definition only;
create table zjt_views as
(select * from views) definition only;
//插入记录
insert into zjt_tables select * from tables;
insert into zjt_views select * from views;
//建立视图
create view V_zjt_tables as select tabschema,tabname from zjt_tables;
//建立触发器
CREATE TRIGGER zjt_tables_del
AFTER DELETE ON zjt_tables
REFERENCING OLD AS O
FOR EACH ROW MODE DB2SQL
Insert into zjt_tables1 values(substr(o.tabschema,1,8),substr(o.tabname,1,10))
//建立唯一性索引
CREATE UNIQUE INDEX I_ztables_tabname
ON zjt_tables(tabname);
//查看表
select tabname from tables
where tabname='ZJT_TABLES';
//查看列
select SUBSTR(COLNAME,1,20) as 列名,TYPENAME as 类型,LENGTH as 长度
from columns
where tabname='ZJT_TABLES';
//查看表结构
db2 describe table user1.department
db2 describe select * from user.tables
//查看表的索引
db2 describe indexes for table user1.department
//查看视图
select viewname from views
where viewname='V_ZJT_TABLES';
//查看索引
select indname from indexes
where indname='I_ZTABLES_TABNAME';
//查看存贮过程
SELECT SUBSTR(PROCSCHEMA,1,15),SUBSTR(PROCNAME,1,15)
FROM SYSCAT.PROCEDURES;
//类型转换(cast)
ip datatype:varchar
select cast(ip as integer)+50 from log_comm_failed
//重新连接
connect reset
//中断数据库连接
disconnect db2_gcb
//view application
LIST APPLICATION;
//kill application
FORCE APPLICATION(0);
db2 force applications all (强迫所有应用程序从数据库断开)
//lock table
//独占
lock table test in exclusive mode
//共享
lock table test in share mode
//显示当前用户所有表
list tables
//列出所有的系统表
list tables for system
//显示当前活动数据库
list active databases
//查看命令选项
list command options
//系统数据库目录
LIST DATABASE DIRECTORY
//表空间
list tablespaces
//表空间容器
LIST TABLESPACE CONTAINERS FOR
Example: LIST TABLESPACE CONTAINERS FOR 1
//显示用户数据库的存取权限
GET AUTHORIZATIONS
//启动实例
DB2START
//停止实例
db2stop
//表或视图特权
grant select,delete,insert,update on tables to user
grant all on tables to user WITH GRANT OPTION
//程序包特权
GRANT EXECUTE
ON PACKAGE PACKAGE-name
TO PUBLIC
//模式特权
GRANT CREATEIN ON SCHEMA SCHEMA-name TO USER
//数据库特权
grant connect,createtab,dbadm on database to user
//索引特权
grant control on index index-name to user
//信息帮助 (? XXXnnnnn )
例:? SQL30081
//SQL 帮助(说明 SQL 语句的语法)
help statement
例如,help SELECT
SQLSTATE 帮助(说明 SQL 的状态和类别代码)
? sqlstate 或 ? class-code
//更改与“管理服务器”相关的口令
db2admin setid username password
//创建 SAMPLE 数据库
db2sampl
db2sampl F:(指定安装盘)
//使用操作系统命令
! dir
//转换数据类型 (cast)
SELECT EMPNO, CAST(RESUME AS VARCHAR(370))
FROM EMP_RESUME
WHERE RESUME_FORMAT = 'ascii'
//要运行 DB2 Java 存储过程或 UDF,还需要更新服务器上的 DB2 数据库管理程序配置,以包括在该机器上安装 JDK 的路径
db2 update dbm cfg using JDK11_PATH d:\sqllib\java\jdk
TERMINATE
update dbm cfg using SPM_NAME sample
//检查 DB2 数据库管理程序配置
db2 get dbm cfg
//检索具有特权的所有授权名
SELECT DISTINCT GRANTEE, GRANTEETYPE, 'DATABASE' FROM SYSCAT.DBAUTH
UNION
SELECT DISTINCT GRANTEE, GRANTEETYPE, 'TABLE ' FROM SYSCAT.TABAUTH
UNION
SELECT DISTINCT GRANTEE, GRANTEETYPE, 'PACKAGE ' FROM SYSCAT.PACKAGEAUTH
UNION
SELECT DISTINCT GRANTEE, GRANTEETYPE, 'INDEX ' FROM SYSCAT.INDEXAUTH
UNION
SELECT DISTINCT GRANTEE, GRANTEETYPE, 'COLUMN ' FROM SYSCAT.COLAUTH
UNION
SELECT DISTINCT GRANTEE, GRANTEETYPE, 'SCHEMA ' FROM SYSCAT.SCHEMAAUTH
UNION
SELECT DISTINCT GRANTEE, GRANTEETYPE, 'SERVER ' FROM SYSCAT.PASSTHRUAUTH
ORDER BY GRANTEE, GRANTEETYPE, 3
create table yhdab
(id varchar(10),
password varchar(10),
ywlx varchar(10),
kh varchar(10));
create table ywlbb
(ywlbbh varchar(8),
ywmc varchar(60))
//修改表结构
alter table yhdab ALTER kh SET DATA TYPE varchar(13);
alter table yhdab ALTER ID SET DATA TYPE varchar(13);
alter table lst_bsi alter bsi_money set data type int;
insert into yhdab values
('20000300001','123456','user01','20000300001'),
('20000300002','123456','user02','20000300002');
//业务类型说明
insert into ywlbb values
('user01','业务申请'),
('user02','业务撤消'),
('user03','费用查询'),
('user04','费用自缴'),
('user05','费用预存'),
('user06','密码修改'),
('user07','发票打印'),
('gl01','改用户基本信息'),
('gl02','更改支付信息'),
('gl03','日统计功能'),
('gl04','冲帐功能'),
('gl05','对帐功能'),
('gl06','计费功能'),
('gl07','综合统计')
二. 目录视图说明
说明 目录视图
检查约束 SYSCAT.CHECKS
列 SYSCAT.COLUMNS
检查约束引用的列 SYSCAT.COLCHECKS
关键字中使用的列 SYSCAT.KEYCOLUSE
数据类型 SYSCAT.DATATYPES
函数参数或函数结果 SYSCAT.FUNCPARMS
参考约束 SYSCAT.REFERENCES
模式 SYSCAT.SCHEMATA
表约束 SYSCAT.TABCONST
表 SYSCAT.TABLES
触发器 SYSCAT.TRIGGERS
用户定义函数 SYSCAT.FUNCTIONS
视图 SYSCAT.VIEWS
三. 字符串类型
二进制大对象 (BLOB) 字符串。
字符大对象 (CLOB) 字符串,它的字符序列可以是单字节字符或多字节字符,或这两者的组合。
双字节字符大对象 (DBCLOB) 字符串,它的字符序列是双字节字符。
四. 数据库范式
第一种规范形式:表中的每一行和每一列均有一个值,永远不会是一组值。
第二种规范形式:不在关键字中的每一列提供取决于整个关键字的事实。
第三种规范形式:每个非关键字列提供与其他非关键字列无关并只取决于该关键字的事实。
第四种规范形式:没有行包含有关一个实体的两个或更多个独立的多值事实。
五. 数据类型
数据类型 类型 特性 示例或范围
CHAR(15) 定长字符串 最大长度为 254 'Sunny day '
VARCHAR(15) 变长字符 最大长度为 4000 'Sunny day'
SMALLINT 数字 长度为 2 字节精度为 5 位 范围为-32768 至 32767
INTEGER 数字 长度为 4 字节精度为 10 位 范围为-2147483648 至 2147483647
REAL 数字 单精度浮点32 位近似值 范围为-3.402E+38至-1.175E-37或 1.175E-37 至-3.402E+38或零
DOUBLE 数字 双精度浮点64 位近似值 范围为-1.79769E+308 至-2.225E-307或 2.225E-307 至 1.79769E+308或零
DECIMAL(5,2) 数字 精度为 5小数位为 2 范围为 -10**31+1 至 10**31-1
DATE 日期时间 三部分值 1991-10-27
TIME 日期时间 三部分值 13.30.05
TIMESTAMP 日期时间 七部分值 1991-10-27-13.30.05.000000
列函数
列函数对列中的一组值进行运算以得到单个结果值。下列就是一些列函数的示例。
AVG
返回某一组中的值除以该组中值的个数的和
COUNT
返回一组行或值中行或值的个数
MAX
返回一组值中的最大值
MIN
返回一组值中的最小值
标量函数
标量函数对值进行某个运算以返回另一个值。下列就是一些由DB2 通用数据库提供的标量函数的示例。
ABS
返回数的绝对值
HEX
返回值的十六进制表示
LENGTH
返回自变量中的字节数(对于图形字符串则返回双字节字符数。)
YEAR
抽取日期时间值的年份部分
DB2数据库的安装
2005-3-3 14:37:05
这是在IBM RS6000 操作系统为AIX安装的,HP9000上雷同
1. 注册为具有超级用户权限的用户(root)
2. 将 标有“DB2通用数据库企业版”的软件光盘插入驱动器
3. 输入如下命令,以创建一个目录来安装该 CD-ROM:
# mkdir -p /cdrom 其中 cdrom 表示 CD-ROM 安装目录。
输入如下命令,来分配 CD-ROM 文件系统:
# smitty storage
4. 选择文件系统
5. 选择添加/更改/显示/删除文件系统
6. 选择 CDROM 文件系统
7. 选择添加 CDROM 文件系统
8. 在弹出窗口中,输入如下项作为安装点:
/cdrom
9. 通过输入以下命令来安装 CD-ROM 文件系统: smit mountf
10. 在文件系统名称字段中输入值。例如,该名称可能是 /dev/cd0。
11. 在安装目录字段中输入值。例如,此值可能是 /cdrom。
12. 将安装为只读系统设置为 Yes。
13. 单击确定。
14. cd /cdrom
15. 输入 ./db2setup 命令以启动 DB2 安装程序。 安装 DB2 V6 窗口打开。
16. 按 Tab 键更改突出显示的选项,按 Enter 键选择或取消选择选项。
(1) 在服务器上安装,一般选择安装以下三个产品:
注意:要显示想要安装的 DB2 产品的部件,选择定制。要在任何时候返回至先前窗口,选择取消。
DB2 Administration Client
选择定制安装这个产品,
DB2 UDB enterprise edition
选择定制安装这个产品,
DB2 Software Developer Kit
如果同时做开发,需要定制安装此产品。
(2) 在“DB2产品信息”和“DB2产品库”只选择中国语言ZH_CN支持。
17. 在16步确认后,将开始安装数据库程序。在安装过程中,还需确认以下问题:
(1) 是否建立DB2管理帐户, 一般选择建立:
按缺省建立db2管理用户db2as(使用缺省的UID,Group Id,安装home路径),在语言支持上,
只选择中国语言ZH_CN支持。
(2) 是否建立DB2的实例, 一般选择建立:
按缺省建立db2管理用户db2inst1:db2iadm1(使用缺省的UID,Group Id,安装home路径),
在语言支持上,只选择中国语言ZH_CN支持。
按缺省建立db2用户db2fenc1:db2fenc1(使用缺省的UID,Group Id,安装home路径),
在语言支持上,只选择中国语言ZH_CN支持。
是否建立sample数据库(为了检查数据库的安装是否正确,一般选择建立sample数据库)
是否选择DB2的实例进程在操作系统启动时,自动执行初始化
如果在独立服务器上安装使用,可选择autostart,但在aix+hacmp+db2的双机共享环境中,不要选择
autostart,DB2实例进程的启动,由hacmp来控制。
18. 安装结果:
数据库程序安装完成后,DB2的软件程序安装在/usr/lpp目录中,
DB2DIR = /usr/lpp/DB2_06_01
注意:如果安装过程中没有指定建立实例和管理帐户,在安装完成后可以使用命令创建实例(db2icrt)。
或者要创建或添加新的实例、“管理服务器”或其他 DB2 产品和部件,输入如下命令:
/usr/lpp/DB2_06_01/install/DB2setup
19. 验证安装
在安装时若没有选择建立sample数据库,在安装完成后可以通过命令(db2sampl)创建 SAMPLE 数据库,
并通过使用命令行处理器与该数据库相连来验证安装:
(1) 作为具有系统管理 (SYSADM) 权限的用户向系统注册。如:db2inst1
(2) 输入 DB2sampl 命令以便创建 SAMPLE 数据库。
(3) 创建 SAMPLE 数据库时,用数据库别名 SAMPLE 将它自动编目。
(4) 输入 DB2start 命令以启动数据库管理程序。
(5) 输入下列命令来与 SAMPLE 数据库相连,检索在部门 20 中工作的所有雇员的列表,并重设数据库连接:
DB2 connect to sample
DB2 "select * from staff where dept = 20"
DB2 connect reset
注意:在验证安装后,可除去 SAMPLE 数据库以释放磁盘空间。输入 DB2 drop database sample 命令
来卸下 SAMPLE 数据库。
若尚未未安装 DB2 工具,则您可以通过创建 SAMPLE 数据库, 并通过使用命令行处理器与该数据库
相连来验证安装,如下所示:
步骤 1.
作为具有系统管理 (SYSADM) 权限的用户向系统注册。
步骤 2.
输入 db2sampl 命令以便创建 SAMPLE 数据库。
创建 SAMPLE 数据库时, 用数据库别名 SAMPLE 将它自动编目。
步骤 3.
输入 db2start 命令以启动数据库管理程序。
步骤 4.
输入下列命令来与 SAMPLE 数据库相连, 检索在部门 20 中工作的所有雇员的列表,并重设数据库连接:
db2 connect to sample
db2 "select * from staff where dept = 20"
db2 connect reset
如以上命令均正确执行, 则证明DB2 UDB 数据库服务器的安装已经成功完成.
如果出现异常导致DB2关闭,请用下面命令重新启动DB2和SDE。
Spring
重新启动DB2:
用root用户登陆,然后输入以下命令:
spring2005
su - db2inst9
强行关闭DB2:
db2stop force
启动DB2:
db2start
DB2 SHUTDOWN后,有可能在sqllib/db2dump下生成一些.000的内存DUMP文件,可以
将这些文件全部删除,否则会导致HOME下空间不够,在进入该目录后,用下面的命令删
除之:
rm -fr *.000
重新启动SDE:
DB2重新启动后,需要重新启动SDE,用chcc_gis用户登陆:
启动:
cd $SDEHOME/bin
./sdemon -o start -p sde
关闭:
./sdemon -o shutdown -p sde