初识DB2

1,CLP的运行:

   直接在cmd中键入:db2,报错:DB21061E  未初始化命令行环境。

   键入:db2cmd,这时会打开一个CLP窗口,在这里键入db2后,就可以进行sql命令操作了。如:

   db2 => connect to sample


2,表空间的创建:

     在创建表空间,选择“容器”,如果你选择的容器(windows os)是一个非空的文件夹,那么将会报错:

            [IBM][CLI Driver][DB2/NT] SQL0298N  容器路径不正确。  SQLSTATE=428B2

    只需将“容器”改为一个空的文件夹即可。


3,创建数据库:

      一个数据库最少有三个表空间:用户表、目录表和临时表,这些表空间可以采取让OS来管理,也可以让DB本身来管理,这里我采用让OS来进行管理表空间,容器的建立如下:

               用户表(空间)--- d:\MyDB\userTabSpace
               目录表(空间)--- d:\MyDB\dirTabSpace
               临时表(空间)--- d:\MyDB\tempTabSpace

4,在java中用JDBC连接DB2数据库,先用eclipse中的Database Explorer连接:
       
      a,当Class选用DB2中E:\IBM\SQLLIB\java\db2java.zip 下的COM.ibm.db2.jdbc.app.DB2Driver时,Database Explorer可以连接上数据库;当Class选用DB2中E:\IBM\SQLLIB\java\db2jcc.jar 下的com.ibm.db2.jcc.DB2Driver时,Database Explorer连接不上数据库,报错:No license was found,需要将包db2jcc_license_cu.jar加载到classpath下。

5,在用restore命令对DB2进行数据恢复时,如果有多个备份文件与为备份数据库映像所提供的时间戳记值相匹配的话,那么将不能正常恢复,这里采用了一个比较土的方法:如130324.001,改为:130324A.001,那么将会认为这个文件与备份数据库映像所提供的时间戳记值不同,不予恢复考虑。

6,oracle中的decode()函数,看看在DB2中都被折腾成什么样子了:

  语句: select id,case when id=1 then '邹清兵' when id=2 then '马明灯' else name end as 姓名,name from test;

ID          姓名       NAME
----------- ---------- ----------
          1 邹清兵     zqb
          2 马明灯     mmd
          3 kyy        kyy

  3 条记录已选择。

7,DB2中db2start启动数据库,db2stop用来关闭数据库。但如果有数据库正在连接时,是不能关闭数据库的,只有先断开数据库(connect reset)连接才能再关闭数据库(db2stop);当然,也可以强行关闭数据库(db2stop force)。

8,查错方法总结:
         通过SQLSTATE代码得到其错误原因,如:
               db2  ?    08004,其中08004是SQLSTATE代码;当然,有时候我们得到的并不一定是SQLSTATE代码,这时可以同样通过命令: db2  ?  SQL1068N,来得到其SQLSTATE代码。
 

9,oracle中的rownum,可以用DB2中的row_number() over()来替代,也可以用fetch first 3 rows only,如:
    select * from (select row_number() over() as rownum,t.* from xxx t) where rownum < 3
    (select   *   from   xxx   fetch   first   20   rows   only)   except   (select   *   from   xxx   fetch   first   10   rows   only)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值