常用的DB2命令

=================================
常用的DB2命令:
=================================
db2cmd, db2cee, db2cc,

实例与数据库的概念。(与oracle比较)
Db2一个实例可以对应多个数据库,一个数据库只能对应一个实例。Oracle 一个实例只能对应一个数据库。但是一个数据库可以对应多个实例。

1.查看db2 version:
select * from sysibmadm.env_inst_info
db2level
select * from sysibm.sysversions
db2pd -version

2.执行sql脚本:
 db2 -tvf c:/1.sql
 db2 -td/ -vf F:/db2-sql/stored-procedure/db2universal.sql     以/作为statement terminator character

3.db2服务
允许远程连接ControlCenter: db2admin start
关闭远程连接ControlCenter: db2admin stop

4.查询license是否过期
db2licm -l 

5.有哪些db2 instance:
db2 get instance
db2ilist

6.对instance的管理
db2 get instance
db2ilist
db2icrt <instanceName>
db2idrop <instanceName>
启动DB2 instance服务:db2start
关闭DB2 instance 服务: db2stop
强制db2 instance stop: db2stop force 
automatically start instance: db2iauto -on <instanceName>
设置实例系统启动时是否自动启动。
   $ db2iauto -on     自动启动
   $ db2iauto -off    不自动启动

7.编目维护:
本地连接本地数据库:
    为数据库建立编目 $ db2 catalog db btpdbs on /db2catalog
    取消已编目的数据库btpdbs  $ db2 uncatalog db btpdbs

本地连接远程数据库:
    建立编目
    db2 catalog tcpip node mynode1 remote 9.186.116.171 server 50000
    db2 catalog db adapter as adapter at node mynode1
    db2 terminate
    db2 connect to adapter user db2admin using wbiadmin
   
    取消编目
    db2 uncatalog node mynode1
    db2 uncatelog db adapter

8.查看有哪些functions和stored procedure: syscat.functions被syscat.routines所取代。
db2 select * from sysibm.sysfunctions where schema='DB2ADMIN' >>C:/TEMP/1.TXT
db2 select funcname  from syscat.functions where funcschema='DB2ADMIN' >>C:/TEMP/1.TXT

---- STORED PROCEDURES:
SELECT ROUTINESCHEMA,ROUTINENAME FROM SYSCAT.ROUTINES WHERE ROUTINETYPE ='P' AND ROUTINESCHEMA = 'DB2ADMIN'

---FUNCTIONS
SELECT ROUTINESCHEMA,ROUTINENAME FROM SYSCAT.ROUTINES WHERE ROUTINETYPE ='F' AND ORIGIN != 'S' AND ROUTINESCHEMA = 'DB2ADMIN'

9. schema的操作:
db2 set schema btp    修改当前模式为"btp"
db2 SELECT NAME FROM SYSIBM.SYSSCHEMATA  列出所有SCHEMA or
db2 select schemaname from syscat.schemata
db2 describe table syscat.schemata
db2 list tables for all             列出当前数据库下所有的表
db2 list tables for user
db2 list tables for system
db2 list tables for schema btp      列出当前数据库中schema为btp的表

DB2 LIST TABLES [FOR {USER | ALL | SYSTEM | SCHEMA schema-name}] [SHOW DETAIL]

删除schema:
DROP SCHEMA RPW RESTRICT;

创建Schema:
CREATE SCHEMA RPW;

10.如何查看一些内存中的信息(dbm和database)
db2pd  -dynamic -db adapter -file c:/temp.txt     查看内存中的sql语句
            Returns information the execution of dynamic SQL in "adapter" db.
db2pd -db adapter -dynamic 查看内存中的sql statements   ---------非常有用
db2 get snapshot for dynamic sql on adapter >c:/temp/stmt.txt ---------非常有用
db2 SELECT * FROM TABLE( SNAPSHOT_DYN_SQL( 'SAMPLE', -1 )) as SNAPSHOT_DYN_SQL  ---------非常有用

db2pd  -static -db adapter   
            Returns information about the execution of static SQL and packages in "adapter" db.
db2 SELECT * FROM TABLE( SNAPSHOT_STATEMENT( 'SAMPLE', -1 )) as SNAPSHOT_STATEMENT
db2 select * from syscat.statements
           
db2pd  -activestatements -db adapter
db2pd  -catalogcache -db adapter
db2pd  -reopt -db adapter
db2pd  -transaction -db adapter


db2 list tablespaces show detail     查看当前数据库表空间分配状况
db2 list tablespace containers for 2  show detail 查看tablespace id=2使用容器所在目录
db2 list application
db2 list db directory               列出所有数据库
db2 list active databases           列出所有活动的数据库
db2 list packages for all

11.查看application:
db2 list applications 显示所有的session
db2 Force application all; 强行使用户断开 与数据库的连接
db2 force application(hangle_id) 杀掉一个session

db2 connect to <dbname> user <user> using <password> 连接数据库
db2 connect reset 退出数据库
db2 disconnect
db2 terminate        断开数据库连接

12.查看执行计划
db2expln –d 数据库名 –q "sql语句" -t  for example: db2expln  -d adapter -q "select * from customer" -t
db2expln建议你把执行路径和索引情况分析分析
db2expln -d dbname -u db2inst1 password -t -g -f select.sql > explain.out

13.tablespace:
create tablespace userspace1 managed by system using('f:/test/user') bufferpool test_bp
create system temporary tablespace managed by system using('f:/test/systmp') bufferpool test_bp
create user temporary tablespace managed by  system using('f:/test/usertmp') bufferpool test_bp
create bufferpool test_bp size 250 pagesize 32k not EXTENDED STORAGE
create bufferpool pool_test size 250 pagesize 32k not EXTENDED STORAGE
create bufferpool <buf_name> size <number of pages> [pagesize 4096] {[not] EXTENDED STORAGE}
drop tablespace userspace1

13.数据库管理:
db2 create database test
drop database test
db2 create database jhtest catalog tablespace managed by system using('d:/db2/jhtest/catalog')  system temporary tablespace managed by system using('d:/db2/jhtest/systmp')

14.隔离级的更改
1)语句级别:   db2 "select * from table WITH UR"
2)session级别:db2 set current isolation level = UR
3)永久:需要rebind package,具体请查询相关语法
4)CLI: TxnIsolation = 1 | 2 | 4 | 8 | 32
5)   :  db2 change  isolation to ur

15.Runstats
runstats on table table_name for detailed indexes all

16. 主题:db2的where条件执行顺序问题
前几天有个老师给讲sql语句的优化问题,提到oracle在处理where条件的时候是先处理最右边的比如select * from table where a>'**'  and b<'**',数据库在执行的时候是先筛选b<'**'的条件,之后再筛选前面的条件 现在在用db2,请问, db2里面是怎么样的执行顺序呢?

db2与ORACLE的机制不同,在ORACLE中可以在SQL指定很多优化器提示什么的,也有执行谓词的顺序。在db2中根据RUNSTAT的统计信息自己确定优化的,可能会重写,所以不一定是固定顺序。所以db2是基于统计信息的优化,不可以像ORACLE那样可以基于成本或性能等等灵活。


============================
帮助信息:
============================
db2set -h
db2 ?
db2 ? options
db2 ? help
db2 ? list tables
db2 ? SQL0104N
db2 ? DB21004E
db2 ? list applications
db2 list command options

-------------------------------------
db2 [option ...] [db2-command | sql-statement |[? [phrase | message | sqlstate | class-code]]]
   
option:-a、-c、-d、-e{c|s}、-finfile、-i、-lhistfile、-o、-m、-n、-p、-q、-rreport、-s、-t、-td;、-v、-w、-x 和 -zoutputfile。
db2-command:
 ACTIVATE DATABASE        GET CONTACTS               RECOVER
 ADD CONTACT              GET/UPDATE DB CFG          REDISTRIBUTE DB PARTITION
 ADD CONTACTGROUP         GET/UPDATE DBM CFG         REFRESH LDAP
 ADD DATALINKS MANAGER    GET DBM MONITOR SWITCHES   REGISTER LDAP

============================
查看process或者thread情况:
============================
AIX,HP-UX,Linux: ps -fu <instance_name> or db2_local_ps
Solaris: db2ptree
General: db2pd -edus -allpartitionnums

=========================
查看内存分布情况:
=========================
db2mtrk -i -v   查看instance memory
db2mtrk -d -v   查看database memory
db2mtrk -a -v   查看application memory
db2 select * from syscat.bufferpools 查看tablespace上的bufferpool
db2 get dbm cfg show detail  ----INSTANCE_MEMORY
db2 get db for adapter show detail  ---DATABASE_MEMORY OR APP_MEMORY
db2 "select * from table (sysproc.admin_get_dbp_mem_usage(-1)) as t"   query overall memory consumption


一、加载数据:
1、 以默认分隔符加载,默认为“,”号
    db2 "import from btpoper.txt of del insert into btpoper"
2、 以指定分隔符“|”加载
    db2 "import from btpoper.txt of del modified by coldel| insert into btpoper"

二、卸载数据:
1、 卸载一个表中全部数据
    db2 "export to btpoper.txt of del select * from btpoper"
    db2 "export to btpoper.txt of del modified by coldel| select * from btpoper"

2、 带条件卸载一个表中数据
    db2 "export to btpoper.txt of del select * from btpoper where brhid='907020000'"
    db2 "export to cmmcode.txt of del select * from cmmcode where codtp='01'"
    db2 "export to cmmcode.txt of del modified by coldel| select * from cmmcode where codtp='01'"

三、查询数据结构及数据:
    db2 "select * from btpoper"
    db2 "select * from btpoper where brhid='907020000' and oprid='0001'"
    db2 "select oprid,oprnm,brhid,passwd from btpoper"

四、删除表中数据:
    db2 "delete from btpoper"
    db2 "delete from btpoper where brhid='907020000' or brhid='907010000'"

五、修改表中数据:
    db2 "update svmmst set prtlines=0 where brhid='907010000' and jobtp='02'"
    db2 "update svmmst set prtlines=0 where jobtp='02' or jobtp='03'"

六、联接数据库
    db2 connect to btpdbs
    db2 -tvf c:/1.sql

七、清除数据库联接
    db2 connect reset    断开数据库连接
    db2 terminate        断开数据库连接
    db2 force applications all 断开所有数据库连接

八、备份数据库
1、 db2 backup db btpdbs
2、 db2move btpdbs export
    db2look -d btpdbs -e -x [-a] -o crttbl.sql

九、恢复数据库
1、 db2 restore db btpdbs without rolling forward
2、 db2 -tvf crtdb.sql
        crtdb.sql文件内容:create db btpdbs on /db2catalog
    db2 -stvf crttbl.sql
    db2move btpdbs import

十、DB2帮助命令:
    db2 ?
    db2 ? restroe
    db2 ? sqlcode (例:db2 ? sql0803) 注:code必须为4位数,不够4位,前面补0


十一、bind命令:将应用程序与数据库作一捆绑,每次恢复数据库后,建议都要做一次bind
   (1) db2 bind br8200.bnd
   (2) /btp/bin/bndall /btp/bnd
       /btp/bin/bndall /btp/tran/bnd

十二、查看数据库参数:
      db2 get dbm cfg
      db2 get db cfg for btpdbs

十三、修改数据库参数:
      db2 update db cfg for btpdbs using LOGBUFSZ 20
      db2 update db cfg for btpdbs using LOGFILSIZ 5120
      改完后,应执行以下命令使其生效:
      db2 stop
      db2 start


补充:
   db2 "import from tab76.ixf of ixf commitcount 5000 insert into achact"
   db2 "create table achact_t like achact" 
   db2 "rename table achact_t to achact" 
   db2 "insert into achact_t select * from achact where txndt>=(select lstpgdt from acmact where actno=achact.actno)"
   db2 get snapshot for dynaimic sql on jining

数据库优化命令:
   reorg、runstats
   当数据库经过一段时间使用,数据空间会变得越来越庞大。一些delete掉的数据仍存放在数据库中,占用数据空间,影响系统性能。因此需要定期 运行reorg、runstats命令,清除已delete的数据,优化数据结构。
   db2 reorg table 表名
   db2 runstats on table 表名 with distribution and indexes all
   因为要优化的表比较多,所以在/btp/bin目录下提供了一个sh程序runsall,
   可在当天业务结束后,运行runsall,对数据库进行优化 
 
================================================
快速参考: DB2命令行处理器(CLP)中的常用命令
================================================
    这篇文章的读者是那些参与项目的人员,他们用 DB2 Everyplace 进行计划、设置和执行一个机动项目。计划要描述用 DB2 Everyplace 的机动项目的生命周期,进而减少开发强度和降低项目成本。我们的提示和建议都以参与用 DB2 Everyplace 版本 7.2 和 版本 7.2.1 的各种机动项目的现场人员的经验为依据。

简介
以下是最常用的 DB2 CLP 命令的快速参考。虽然不是一份完整的参考,但这篇文档对于任何刚接触 DB2 的用户来说,可以证明是案边有价值的参考材料。
方括号中的参数是可选参数,尖括号中的内容表示变量。例如,CONNECT 的语法是:
connect to <dbname> [ [user <userid>] using <pwd>]
这意味着,通过 CONNECT 命令以 user1 身份使用密码 mypass 与数据库 sample 连接可以有下列形式:
Connect to sample
Connect to sample user user1
Connect to sample user user1 using mypass

根据命令的作用域来组织所有命令。对于任何 CLP 命令,您都可以输入加上前缀问号(“?”)的关键字,以查看其完整的语法。
实例
CLP 命令     描述
db2start    启动数据库管理器实例。
db2stop        停止数据库管理器实例。
get dbm cfg    返回数据库管理器配置设置。
get dbm cfg show detail    显示数据库管理器参数的当前值和延迟值(从 V8 起)。
update dbm cfg using <p> <v>    将数据库管理器配置参数 <p> 更新为值 <v>。
get instance    返回 DB2INSTANCE 环境变量的值。
list active databases    列出活动的数据库和连接数。
list application [show detail]    返回关于当前连接的应用程序的信息。
force application (h1 [,h2,..,hn])    根据句柄号与特定应用程序断开连接。
force application all    断开所有应用程序与数据库的连接。
attach to <node> user <userid> using <pwd>    以用户 <userid> 通过使用密码 <pwd> 与标识为 <node> 的远程实例连接。
list database directory

数据库
create database <dbname>    创建名为 <dbname> 的数据库。
activate database <dbname>    显式地激活数据库。
deactivate database <dbname>    显式地使数据库失效。
connect to <dbname> [ [user <userid>] using <pwd>]     根据需要,显式地以用户 <userid> 和密码 <pwd> 与数据库 <dbname> 连接。
update dbm cfg using <p> <v>    将数据库管理器配置参数 <p> 更新为值 <v>。
connect reset    断开与当前数据库的连接。
get db cfg show detail    显示数据库配置参数的当前值和延迟值(仅适用于 V8)。
get db cfg for <dbname>    返回数据库 <dbname> 的数据库配置设置。
update db cfg for <dbname> using <p> <v>    将数据库 <dbname> 的数据库配置参数 <p> 更新为值 <v>。
list tables[for {user | all | system | schema <schemaname>}][show detail]    列出数据库中的表。如果没有指定任何参数,则缺省情况是列出当前用户的表。
describe table <tablename>    显示一个表或视图的列信息。
list tablespaces [show detail]    显示表空间的标识、名称、类型、内容和状态。
list tablespace containers for <tablespace_id> [show detail]    显示用 <tablespace_id> 指定的表空间的容器信息。
quiesce tablespaces for table <tablename> reset    将表空间的状态复位成正常(normal)。


连接性
catalog [admin] <protocol> node …    为协议 <protocol> 在节点目录中创建一项。
list [admin] node directory    返回节点目录的内容。
catalog database <dbname>…    为数据库 <dbname> 在数据库目录中创建一项。
list database directory [on <path>]    返回数据库目录的内容。

db2 catalog tcpip node mynode1 remote 9.186.116.171 server 50000
db2 catalog db adapter as adapter at node mynode1
db2 terminate
db2 connect to adapter user db2admin using wbiadmin

drop:
db2 uncatalog node mynode1
db2 uncatelog db adapter

性能
get monitor switches    返回会话监控开关的状态。
update monitor switches using <monitor> <on|off>    为 <monitor> 设置会话监控开关的状态。
reset monitor all    复位性能监控程序值。
get snapshot for dbm    返回实例级别的性能信息。
get snapshot for all on <dbname>    为数据库 <dbname> 在数据库级别返回所有性能信息。
get snapshot for dynamic sql on <dbname>    返回动态 SQL 高速缓存的内容。
runstats on table <tbschema>.<tbname>    收集表 <tbname> 的统计信息。表名必须是用 <dbschema> 全限定的。
reorgchk on table all    确定是否需要对表进行重组。这对于对所有表自动执行 runstats 很有用。
reorg table <tablename>    通过重构行来消除“碎片”数据并压缩信息,对表进行重组。


管理
export    将数据库数据抽取到一个平面文件中。
import    通过使用 IMPORT 实用程序,将数据导入到数据库。
load query table <tbname> [to local-message-file][nosummary | summaryonly] [showdelta]     返回 LOAD 实用程序的进度。
backup database <dbname> [to <path>]    执行数据库备份。
restore database <dbname> [from <path>]    执行数据库恢复。
get health snapshot for dbm    返回实例的正常快照信息(仅适用于 V8)。
get health snapshot for all on <dbname>    返回数据库 <dbname> 的所有正常快照(仅适用于 V8)。


管理服务器
get admin cfg    返回管理服务器的配置设置。
update admin cfg using <p> <v>    将管理服务器配置参数 <p> 更新为值 <v>。

应用程序开发
get routine into <filename> from [specific] procedure <routine-name>[hide body]    将 SQL 过程抽取成二进制文件。
put routine from <filename> [owner <newowner>[use registers]]    从二进制文件部署 SQL 过程。

连接数据库:
    connect to [数据库名] user [操作用户名] using [密码]

创建缓冲池(8K):
    create bufferpool ibmdefault8k IMMEDIATE    SIZE 5000 PAGESIZE 8 K ;
创建缓冲池(16K)(OA_DIVERTASKRECORD):
    create bufferpool ibmdefault16k IMMEDIATE    SIZE 5000 PAGESIZE 16 K ;
创建缓冲池(32K)(OA_TASK):
    create bufferpool ibmdefault32k IMMEDIATE    SIZE 5000 PAGESIZE 32 K ;

创建表空间:
    CREATE TABLESPACE exoatbs IN DATABASE PARTITION GROUP IBMDEFAULTGROUP PAGESIZE 8K MANAGED BY SYSTEM USING ('/home/exoa2/exoacontainer') EXTENTSIZE 32 PREFETCHSIZE 16    BUFFERPOOL IBMDEFAULT8K    OVERHEAD 24.10 TRANSFERRATE 0.90    DROPPED TABLE RECOVERY OFF;

    CREATE TABLESPACE exoatbs16k    IN DATABASE PARTITION GROUP IBMDEFAULTGROUP PAGESIZE 16K MANAGED BY SYSTEM USING ('/home/exoa2/exoacontainer16k'     ) EXTENTSIZE 32    PREFETCHSIZE 16    BUFFERPOOL IBMDEFAULT16K    OVERHEAD 24.1 TRANSFERRATE 0.90    DROPPED TABLE RECOVERY OFF;

    CREATE TABLESPACE exoatbs32k    IN DATABASE PARTITION GROUP IBMDEFAULTGROUP PAGESIZE 32K MANAGED BY SYSTEM USING ('/home/exoa2/exoacontainer32k'     ) EXTENTSIZE 32    PREFETCHSIZE 16    BUFFERPOOL IBMDEFAULT32K    OVERHEAD 24.1 TRANSFERRATE 0.90    DROPPED TABLE RECOVERY OFF;

GRANT USE OF TABLESPACE exoatbs TO PUBLIC;
GRANT USE OF TABLESPACE exoatbs16k TO PUBLIC;
GRANT USE OF TABLESPACE exoatbs32k TO PUBLIC;

创建系统表空间:
    CREATE TEMPORARY TABLESPACE exoasystmp IN DATABASE PARTITION GROUP IBMTEMPGROUP PAGESIZE 8K    MANAGED BY SYSTEM USING ('/home/exoa2/exoasystmp'     ) EXTENTSIZE 32 PREFETCHSIZE 16 BUFFERPOOL IBMDEFAULT8K    OVERHEAD 24.10 TRANSFERRATE 0.90    DROPPED TABLE RECOVERY OFF;

    CREATE TEMPORARY TABLESPACE exoasystmp16k IN DATABASE PARTITION GROUP IBMTEMPGROUP PAGESIZE 16K MANAGED BY SYSTEM USING ('/home/exoa2/exoasystmp16k'    ) EXTENTSIZE 32 PREFETCHSIZE 16 BUFFERPOOL IBMDEFAULT16K OVERHEAD 24.10 TRANSFERRATE 0.90    DROPPED TABLE RECOVERY OFF;

    CREATE TEMPORARY TABLESPACE exoasystmp32k IN DATABASE PARTITION GROUP IBMTEMPGROUP PAGESIZE 32K MANAGED BY SYSTEM USING ('/home/exoa2/exoasystmp32k') EXTENTSIZE 32 PREFETCHSIZE 16 BUFFERPOOL IBMDEFAULT32K OVERHEAD 24.10 TRANSFERRATE 0.90    DROPPED TABLE RECOVERY OFF;


注意db2不同于Oracle,user和schema是不同的概念。
1. 启动实例(db2inst1):
db2start

2. 停止实例(db2inst1):
db2stop

3. 列出所有实例(db2inst1)
db2ilist

5.列出当前实例:
db2 get instance

4. 察看示例配置文件:
db2 get dbm cfg|more

5. 更新数据库管理器参数信息:
db2 update dbm cfg using para_name para_value

6. 创建数据库:
db2 create db test

7. 察看数据库配置参数信息
db2 get db cfg for test|more

8. 更新数据库参数配置信息
db2 update db cfg for test using para_name para_value

10.删除数据库:
db2 drop db test

11.连接数据库
db2 connect to test

12.列出所有表空间的详细信息。
db2 list tablespaces show detail

13.查询数据:
db2 select * from tb1

14.删除数据:
db2 delete from tb1 where id=1

15.创建索引:
db2 create index idx1 on tb1(id);

16.创建视图:
db2 create view view1 as select id from tb1

17.查询视图:
db2 select * from view1

18.节点编目
db2 catalog tcp node node_name remote server_ip server server_port

19.察看端口号
db2 get dbm cfg|grep SVCENAME

20.测试节点的附接
db2 attach to node_name

21.察看本地节点
db2 list node direcotry

22.节点反编目
db2 uncatalog node node_name

23.数据库编目
db2 catalog db db_name as db_alias at node node_name

24.察看数据库的编目
db2 list db directory

25.连接数据库
db2 connect to db_alias user user_name using user_password

26.数据库反编目
db2 uncatalog db db_alias

27.导出数据
db2 export to myfile of ixf messages msg select * from tb1

28.导入数据
db2 import from myfile of ixf messages msg replace into tb1

29.导出数据库的所有表数据
db2move test export

30.生成数据库的定义
db2look -d db_alias -a -e -m -l -x -f -o db2look.sql

31.创建数据库
db2 create db test1

32.生成定义
db2 -tvf db2look.sql

33.导入数据库所有的数据
db2move db_alias import

34.重组检查
db2 reorgchk

35.重组表tb1
db2 reorg table tb1

36.更新统计信息
db2 runstats on table tb1

37.备份数据库test
db2 backup db test

38.恢复数据库test
db2 restore db test

399/.列出容器的信息
db2 list tablespace containers for tbs_id show detail

40.创建表:
db2 ceate table tb1(id integer not null,name char(10))

41.列出所有表
db2 list tables

42.插入数据:
db2 insert into tb1 values(1,’sam’);
db2 insert into tb2 values(2,’smitty’);


一、常用命令
1. 建立数据库DB2_GCB
CREATE DATABASE DB2_GCB ON G: ALIAS DB2_GCB USING CODESET GBK TERRITORY CN COLLATE USING SYSTEM DFT_EXTENT_SZ 32

2. 连接数据库
connect to sample1 user db2admin using 8301206

3. 建立别名
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;

4. 建立表
create table zjt_tables as
(select * from tables) definition only;

create table zjt_views as
(select * from views) definition only;

5. 插入记录
insert into zjt_tables select * from tables;
insert into zjt_views select * from views;

6. 建立视图
create view V_zjt_tables as select tabschema,tabname from zjt_tables;

7. 建立触发器
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))

8. 建立唯一性索引
CREATE UNIQUE INDEX I_ztables_tabname
[size=3]ON zjt_tables(tabname);

9. 查看表
select tabname from tables
where tabname='ZJT_TABLES';

10. 查看列
select SUBSTR(COLNAME,1,20) as 列名,TYPENAME as 类型,LENGTH as 长度
from columns
where tabname='ZJT_TABLES';

11. 查看表结构
db2 describe table user1.department
db2 describe select * from user.tables

12. 查看表的索引
db2 describe indexes for table user1.department

13. 查看视图
select viewname from views where viewname='V_ZJT_TABLES';

14. 查看索引
select indname from indexes where indname='I_ZTABLES_TABNAME';

15. 查看存贮过程
SELECT SUBSTR(PROCSCHEMA,1,15),SUBSTR(PROCNAME,1,15) FROM SYSCAT.PROCEDURES;

16. 类型转换(cast)
ip datatype:varchar
select cast(ip as integer)+50 from log_comm_failed

17. 重新连接
connect reset

18. 中断数据库连接
disconnect db2_gcb

19. view application
LIST APPLICATION;

20. kill application
FORCE APPLICATION(0);
db2 force applications all (强迫所有应用程序从数据库断开)

21. lock table
lock table test in exclusive mode

22. 共享
lock table test in share mode

23. 显示当前用户所有表
list tables

24. 列出所有的系统表
SELECT NAME FROM SYSIBM.SYSSCHEMATA  列出所有SCHEMA
list tables for system

25. 显示当前活动数据库
list active databases

26. 查看命令选项
list command options

27. 系统数据库目录
LIST DATABASE DIRECTORY

28. 表空间
list tablespaces

29. 表空间容器
LIST TABLESPACE CONTAINERS FOR
Example: LIST TABLESPACE CONTAINERS FOR 1

30. 显示用户数据库的存取权限
GET AUTHORIZATIONS

31. 启动实例
DB2START

32. 停止实例
db2stop

33. 表或视图特权
grant select,delete,insert,update on tables to user
grant all on tables to user WITH GRANT OPTION

34. 程序包特权
GRANT EXECUTE ON PACKAGE PACKAGE-name TO PUBLIC

35. 模式特权
GRANT CREATEIN ON SCHEMA SCHEMA-name TO USER

36. 数据库特权
grant connect,createtab,dbadm on database to user

37. 索引特权
grant control on index index-name to user

38. 信息帮助 (? XXXnnnnn )
例:? SQL30081

39. SQL 帮助(说明 SQL 语句的语法)
help statement
例如,help SELECT

40. SQLSTATE 帮助(说明 SQL 的状态和类别代码)
? sqlstate 或 ? class-code

41. 更改与"管理服务器"相关的口令
db2admin setid username password

42. 创建 SAMPLE 数据库
db2sampl
db2sampl F:(指定安装盘)

43. 使用操作系统命令
! dir

44. 转换数据类型 (cast)
SELECT EMPNO, CAST(RESUME AS VARCHAR(370)) FROM EMP_RESUME WHERE RESUME_FORMAT = 'ascii'

45. UDF
要运行DB2 Java存储过程或 UDF,还需要更新服务器上的 DB2 数据库管理程序配置,以包括在该机器上安装 JDK 的路径
db2 update dbm cfg using JDK11_PATH d:sqllibjavajdk
TERMINATE
update dbm cfg using SPM_NAME sample

46. 检查 DB2 数据库管理程序配置
db2 get dbm cfg

47. 检索具有特权的所有授权名
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))

48. 修改表结构
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');

49. 业务类型说明
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
抽取日期时间值的年份部分


备份数据库:
CONNECT TO EXOA;
QUIESCE DATABASE IMMEDIATE FORCE CONNECTIONS;
CONNECT RESET;
BACKUP DATABASE EXOA TO "/home/exoa2/db2bak/" WITH 2 BUFFERS BUFFER 1024 PARALLELISM 1 WITHOUT PROMPTING;
CONNECT TO EXOA;
UNQUIESCE DATABASE;
CONNECT RESET;

以下是小弟在使用db2move中的一些经验,希望对大家有所帮助。
db2     connect     to    YOURDB  
连接数据库

db2look -d    YOURDB    -a -e -x -o creatab.sql
导出建库表的SQL

db2move     YOURDB    export
用db2move将数据备份出来

vi     creatab.sql
如要导入的数据库名与原数据库不同,要修改creatab.sql中CONNECT 项
如相同则不用更改

db2move    NEWDB    load
将数据导入新库中

在导入中可能因为种种原因发生中断,会使数据库暂挂
db2      list tablespaces     show     detail
如:
        详细说明:
       装入暂挂
总页数                            = 1652
可用页数                          = 1652
已用页数                           = 1652
空闲页数                           = 不适用
高水位标记(页)                   = 不适用
页大小(字节)                     = 4096
盘区大小(页)                     = 32
预读取大小(页)                   = 32
容器数                             = 1
状态更改表空间标识                      = 2
状态更改对象标识                        = 59

db2 select tabname,tableid from syscat.tables where tableid=59
查看是哪张表挂起

表名知道后到db2move.lst(在db2move    YOURDB    export的目录中)中找到相应的.ixf文件
db2 load from tab11.ixf of ixf terminate into db2admin.xxxxxxxxx
tab11.ixf对应的是xxxxxxxxx表

数据库会恢复正常,可再用db2 list tablespaces show detail查看

30.不能通过GRANT授权的权限有哪种?
SYSAM
SYSCTRL
SYSMAINT
要更该述权限必须修改数据库管理器配置参数

31.表的类型有哪些?
永久表(基表)
临时表(说明表)
临时表(派生表)

32.如何知道一个用户有多少表?
SELECT* FROM SYSIBM.SYSTABLESWHERECREATOR='USER'

33.如何知道用户下的函数?
select * from IWH.USERFUNCTION
select * from sysibm.SYSFUNCTIONS

34.如何知道用户下的VIEW数?
select * from sysibm.sysviews WHERECREATOR='USER'

35.如何知道当前DB2的版本?
select * from sysibm.sysversions

36.如何知道用户下的TRIGGER数?
select * from sysibm.SYSTRIGGERS WHERE SCHEMA='USER'

37.如何知道TABLESPACE的状况?
select * from sysibm.SYSTABLESPACES

38.如何知道SEQUENCE的状况?
select * from sysibm.SYSSEQUENCES

39.如何知道SCHEMA的状况?
select * from sysibm.SYSSCHEMATA

40.如何知道INDEX的状况?
select * from sysibm.SYSINDEXES

41.如何知道表的字段的状况?
select * from sysibm.SYSCOLUMNS WHERE TBNAME='AAAA'

42.如何知道DB2的数据类型?
select * from sysibm.SYSDATATYPES

43.如何知道BUFFERPOOLS状况?
select * from sysibm.SYSBUFFERPOOLS

44.DB2表的字段的修改限制?
只能修改VARCHAR2类型的并且只能增加不能减少.

45.如何查看表的结构?
DESCRIBE TABLE TABLE_NAME     OR
DESCRIBE SELECT * FROM SCHEMA.TABLE_NAME

=====================
db2所有命令:
=====================
 ACTIVATE DATABASE        GET CONTACTS               RECOVER
 ADD CONTACT              GET/UPDATE DB CFG          REDISTRIBUTE DB PARTITION
 ADD CONTACTGROUP         GET/UPDATE DBM CFG         REFRESH LDAP
 ADD DATALINKS MANAGER    GET DBM MONITOR SWITCHES   REGISTER LDAP
 ADD DBPARTITIONNUM       GET DESCRIPTION FOR HEALTH REGISTER XMLSCHEMA
 ADD XMLSCHEMA            GET NOTIFICATION LIST      REGISTER XSROBJECT
 ARCHIVE LOG              GET HEALTH SNAPSHOT        REORG INDEXES/TABLE
 ATTACH                   GET INSTANCE               REORGCHK
 AUTOCONFIGURE            GET MONITOR SWITCHES       RESET ADMIN CFG
 BACKUP DATABASE          GET RECOMMENDATIONS        RESET ALERT CFG
 BIND                     GET ROUTINE                RESET DB CFG
 CATALOG APPC NODE        GET SNAPSHOT               RESET DBM CFG
 CATALOG APPN NODE        HELP                       RESET MONITOR
 CATALOG DATABASE         HISTORY                    RESTART DATABASE
 CATALOG DCS DATABASE     IMPORT                     RESTORE DATABASE
 CATALOG LDAP DATABASE    INITIALIZE TAPE            REWIND TAPE
 CATALOG LDAP NODE        INSPECT                    ROLLFORWARD DATABASE
 CATALOG LOCAL NODE       LIST ACTIVE DATABASES      RUNCMD
 CATALOG NPIPE NODE       LIST APPLICATIONS          RUNSTATS
 CATALOG NETBIOS NODE     LIST COMMAND OPTIONS       SET CLIENT
 CATALOG ODBC DATA SOURCE LIST DATABASE DIRECTORY    SET RUNTIME DEGREE
 CATALOG TCPIP NODE       LIST DB PARTITION GROUPS   SET TABLESPACE CONTAINERS
 CHANGE DATABASE COMMENT  LIST DATALINKS MANAGERS    SET TAPE POSITION
 CHANGE ISOLATION LEVEL   LIST DBPARTITIONNUMS       SET UTIL_IMPACT_PRIORITY
 COMPLETE XMLSCHEMA       LIST DCS APPLICATIONS      SET WRITE
 CREATE DATABASE          LIST DCS DIRECTORY         START DATABASE MANAGER
 CREATE TOOLS CATALOG     LIST DRDA INDOUBT          START HADR
 DEACTIVATE DATABASE      LIST HISTORY               STOP DATABASE MANAGER
 DECOMPOSE XML DOCUMENT   LIST INDOUBT TRANSACTIONS  STOP HADR
 DEREGISTER               LIST NODE DIRECTORY        TAKEOVER HADR
 DESCRIBE                 LIST ODBC DATA SOURCES     TERMINATE
 DETACH                   LIST PACKAGES/TABLES       UNCATALOG DATABASE
 DROP CONTACT             LIST TABLESPACE CONTAINERS UNCATALOG DCS DATABASE
 DROP CONTACTGROUP        LIST TABLESPACES           UNCATALOG LDAP DATABASE
 DROP DATABASE            LIST UTILITIES             UNCATALOG LDAP NODE
 DROP DATALINKS MANAGER   LOAD                       UNCATALOG NODE
 DROP DBPARTITIONNUM      LOAD QUERY                 UNCATALOG ODBC DATA
 DROP TOOLS CATALOG       MIGRATE DATABASE           UNQUIESCE DATABASE
 ECHO                     PING                       UNQUIESCE INSTANCE
 EDIT                     PREP/PRECOMPILE            UPDATE ALERT CFG
 EXPORT                   PRUNE HISTORY/LOGFILE      UPDATE COMMAND OPTIONS
 FORCE APPLICATION        PUT ROUTINE                UPDATE CONTACT
 GET/UPDATE ADMIN CFG     QUERY CLIENT               UPDATE CONTACTGROUP
 GET ALERT CFG            QUIESCE DATABASE           UPDATE NOTIFICATION LIST
 GET AUTHORIZATIONS       QUIESCE INSTANCE           UPDATE HISTORY
 GET/UPDATE CLI CFG       QUIESCE TABLESPACES        UPDATE LDAP NODE
 GET CONNECTION STATE     QUIT                       UPDATE MONITOR SWITCHES
 GET CONTACTGROUP         REBIND                     XQUERY
 GET CONTACTGROUPS        RECONCILE

Note:  Some commands are operating system specific and may not be available.

For further help:
                  ? db2-command   - help for specified command
                  ? OPTIONS       - help for all command options
                  ? HELP          - help for reading help screens
The preceding three options can be run as db2 <option> from an OS prompt.

                  !db2ic          - DB2 Information Center (Windows only)
This command can also be run as db2ic from an OS prompt.

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值