db2常用命令

IBM DB2上机操作指南

1.启动实例(db2inst1):实例相当于informix中的服务

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

11.列出所有表空间的详细信息。

db2 list tablespaces show detail

12.列出容器的信息

db2 list tablespace containers for tbs_id show detail

13.创建表:

db2 ceate table tb1(id integer not null,name char(10))

14.列出所有表

db2 list tables

12. 插入数据:

db2 insert into tb1 values(1,’sam’);

db2 insert into tb2 values(2,’smitty’);

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

 

39. 拥有实例的所有程序列表

              db2 list application

40.

              db2 terminate

41. 查看数据表结构

              db2 “describe select * from ggwdxtcs”

 

/*启动命令界面 */       db2cmd

 

/*查看帮助*/             db2 ? *

 

/*连接数据库*/       db2 connecct to <库名> user <用户名> using <用户密码>

 

/*查看数据库实例*/ db2ilist

 

/*启动数据库*/         db2start

 

/*停止数据库应用*/ db2 force applications all

 

/*停数据库*/             db2stop

 

/*查看表空间*          db2 list tablespaces show detail

 

 

/*查看表是否有记录*/    db2 select count(*) from <表名>

 

/*从文本导入到数据库表中*/      db2 import from ***.ixf of ixf modified by forcein commitcount 1000 insert into <表名>

                    

                            modified by forcein /*数据库数据在AIX windows 不同版本之间的格式转换*/

                                                 /*AIXAIX ,windowswindows不需转换*/

                            commitcount ****     /*防止数据库提交过多,引起交易日志满,10005000为宜*/

例子:db2 "import from c:\zj\321104\bbsybsj.ixf of ixf modified by forecein insert into bbsybsj"

/*查看sql语句错误解释*/    db2 ? sql****      ****为四位出错编码,不足位前补0

      

db2 ? “sqlstate”

db2 ? sqlstate=42884

db2 “select * from syscat.functions” |grep –i rtrim

 

db2 "select count(*) from fhdgckfhz where jgm in ( select jgm from ggjgm where s

ubstr(hzjgm,1,6)='321027') and zrye>0"

 

 

1、取前N条记录

 

OracleSelect * from TableName where rownum <= N;

 

DB2Select * from TableName fetch first N rows only;

 

2、取得系统日期

 

OracleSelect sysdate from dual;

 

DB2Select current timestamp from sysibm.sysdummy1;

 

3、空值转换

 

OracleSelect productid,loginname,nvl(cur_rate,'0') from TableName ;

 

DB2Select productid,loginname,value(cur_rate,'0') from TableName;

 

Coalesce(cur_rate,'0')

 

4、类型转换(8版有了to_char,to_date,9版新增了to_number

 

Oracleselect to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual;

 

DB2select varchar(current timestamp) from sysibm.sysdummy1;

 

l        Oracle数据类型改变函数:to_char()to_date()to_number()等;如果仅仅取年,月,日等,可以用to_char(sysdate, 'YYYY'),to_char('MM') ,to_char('DD')取得。只取年月日TRUNC(SYSDATE),取时分秒TO_CHAR(SYSDATE,'HH24:MI:SS')

 

l        DB2数据类型改变函数:char()varchar()int()date()time()等;取得年,月,日等的写法:YEAR(current timestamp)MONTH(current timestamp)DAY(current timestamp)HOUR(current timestamp)MINUTE(current timestamp)SECOND(current timestamp)MICROSECOND(current timestamp),只取年月日可以用DATE(current timestamp),取时分秒TIME(current timestamp)Char()是定长字符串(1-255),varchar()为非定长字符串(1-32672)日期,时间形态变为字符形态: char(current date)char(current time)将字符串转换成日期或时间形态:TIMESTAMP('2002-10-2012:00:00'),DATE('2002-10-20'),DATE('10/20/2002'),TIME('12:00:00')

 

l     目前DB2 V8也支持to_charto_date

 

5、快速清空大表

 

Oracletruncate table TableName ;

 

DB2alter table TableName active not logged initially with empty table;

 

6、关于ROWID

 

Oracle它是由数据库唯一产生的,在程序里可以获得DB2 v8也有此功能。

 

7To_Number

 

Oracleselect to_number('123') from dual;

 

DB2select cast('123' as integer) from sysibm.sysdummy1;

 

SELECT  CAST ( current time as char(8)) FROMsysibm.sysdummy1

 

8、创建类似表

 

Oraclecreate table a as select * from b ;

 

DB2create table a like b ;

 

CREATE TABLE tab_newAS select col1,col2FROMtab_old DEFINITION ONLY (8版有效,9版无效)

 

9decode方法

 

Oracledecode方法(DECODE(条件,1,翻译值1,2,翻译值2,...n,翻译值n,缺省值))或者case语句DB2中只有CASE表达式SELECT id ,name ,CASE WHEN integer(flag)=0 THEN ‘假’ WHEN integer(flag)=1 THEN‘真’ ELSE  ‘异常’END   FROM TEST或者SELECT id ,name , CASE integer(flag) WHEN 0 THEN‘假’ WHEN 1 THEN ‘真’ELSE ‘异常’END   FROM TEST

 

10、子查询(8版,9版也支持子查询)

 

Oracle:直接用子查询

 

Db2:with语句WITH  a1 AS(select max(id) as aa1 from test )   select id ,aa1 from test ,a1

 

11、数据类型

 

l  比较大的差别:

 

Oraclechar  2000

 

DB2:      char  254

 

Oracle:  date   datetime

 

Db2:       DATE:日期TIME:时间TIMESTAMP:日期时间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值