DB2整理资料

1.IMPORT语句使用语法

import from /home/movedata/mytbl.ixf of ixf insert into mytbl

*skipcountrestartcount意义相同*

db2 import from tbtest of del rowcount 100 insert into tbtest #导入前100条记录

db2 import from tbtest of del skipcount/restartcount 100 insert into tbtest #从第101条记录开始导入

db2 import from tbtest of del skipcount/restartcount 100 rowcount 100 insert into tbtest #从第101条记录开始导入100条记录

2.数据文件中带有 换行 加载方式

import from d:\T03_TP_EXEC_QRY_SEQ.del of del modified by delprioritychar coldel%*% insert into T03_TP_EXEC_QRY_SEQ1

 

一、基础篇

 

1db2 connect to <数据库名> --连接到本地数据库名

 

db2 connect to <数据库名> user <用户名> using <密码> --连接到远端数据库

 

2 db2 force application all --强迫所有应用断开数据库连接

 

 

3db2 backup db db2name<数据库名称> --备份整个数据库数据

 

db2 restore db <db2name> --还原数据库

 

4db2 list application --查看所有连接(需要连接到具体数据库才能查看)

 

5db2start --启动数据库

 

db2stop --停止数据库

 

6create database <数据库名> using codeset utf-8 territory CN --创建数据库使用utf-8编码

 

7db2 catalog 命令

 

db2 catalog tcpip node <接点名称> remote <远程数据库地址> server <端口号> --把远程数据库映射到本地接点一般为50000

 

db2 catalog db <远程数据库名称> as <接点名称> at node PUB11 --远程数据库名称到本地接点

 

db2 CONNECT TO <接点名称> user <用户名> using <密码> --连接本地接点访问远程数据库

 

8、数据库导出

 

db2look -d <数据库名> -u <用户> -e -o <脚本名称>.sql --导出数据库的表结构,其中用户空间一般为db2admin/db2inst1

 

db2look -d <数据库名> -u <用户> -t <1> <2> -e -o <脚本名称>.sql --导出数据库中表1和表2的表结构

 

db2move <数据库名> export --导出数据库数据

 

db2move <数据库名> export -tn <1>,<2> --导出数据库中表和表数据

 

9、数据库导入

 

db2 -tvf <脚本名称>.sql --把上述导出的表结构导入到数据库表结构

 

db2move <数据库名> load -lo replace --把上述“db2move <数据库名> export “导出的数据导入到数据库中并把相同的数据替换掉

 

 

在实际使用过程中,如果用到db2自增主键,需要使用by default 而不是always,功能是一样的,但这样在数据移植时候会很方便!

 

10db2 connect reset db2 terminate --断开与数据库的连接

 

11db2set db2codepage=1208 --修改页编码为1208

 

12db2 describe table <表名> --查看表结构

 

13db2 list tables --查看数据库中所有表结构

 

list tables for system --列出所有系统表

 

14db2 list tablespaces --列出表空间

 

15 alter table CRR.TMP_JC010101_LOAN activate not logged initially with empty table --清空表内容

二、高级篇

 

 

15fetch first 10 rows only --列出表中前10条数据

 

例如:select * from <表名> fetch first 10 rows only

 

16coalesce(字段名,转换后的值) --对是null的字段进行值转换

 

例如:select coalesce(id,1) from <表名> --对表中id如果为null转换成1

 

17dayofweek(日期) --计算出日期中是周几(1是周日,2是周一.......7是周六)

 

dayofweek_iso --计算出日期中是周几(1是周一.......7是周日)

 

例如:dayofweek(date(2008-01-16)) --它会返回是4,代表星期三

 

dayofweek_iso(date(2008-01-16)) --它会返回是3,代表星期三

 

18dayofyear(日期) --一年中的第几天,范围在1-366范围之内

 

注意:参数中日期的格式是YYYY-MM-DD的形式,如果不是需要进行转换,否则函数不能使用

 

例如:日期是20080116必须要进行转换

 

dayofweek(concat(concat(concat(substr(openDate,1,4),'-'),concat(substr(openDate,5,2),'-')),substr(openDate,7,2))) as week)

 

这样格式正确的。

 

19concatt(参数1,连接值) --把参数1加上连接值组成一个新值。

 

例如: concat('aa','b') --返回是aab

 

 

、类型转化函数:

转化为数字类型的:

decimal, double, Integer, smallint,real

Hex(arg):转化为参数的16进制表示。

转化为字符串类型的:

char, varchar

Digits(arg):返回arg的字符串表示法,arg必须为decimal

转化为日期时间的:

date, time,timestamp

2、时间日期:

year, quarter, month, week, day, hour, minute ,second

dayofyear(arg):返回arg在年内的天值

Dayofweek(arg):返回arg在周内的天值

days(arg):返回日期的整数表示法,从0001-01-01来的天数。

midnight_seconds(arg):午夜和arg之间的秒数。

Monthname(arg):返回arg的月份名。

Dayname(arg):返回arg的星期。

3、字符串函数:

length,lcase, ucase, ltrim, rtrim

Coalesce(arg1,arg2.):返回参数集中第一个非null参数。

Concat (arg1,arg2):连接两个字符串arg1arg2

insert(arg1,pos,size,arg2):返回一个,将arg1pos处删除size个字符,将arg2插入该位置。

left(arg,length):返回arg最左边的length个字符串。

locate(arg1,arg2,<pos>):arg2中查找arg1第一次出现的位置,指定pos,则从arg2pos处开始找arg1第一次出现的位置。

posstr(arg1,arg2):返回arg2第一次在arg1中出现的位置。

repeat(arg1 ,num_times):返回arg1被重复num_times次的字符串。

replace(arg1,arg2,arg3):将在arg1中的所有arg2替换成arg3

right(arg,length):返回一个有arg左边length个字节组成的字符串。

space(arg):返回一个包含arg个空格的字符串。

substr(arg1,pos,<length>):返回arg1pos位置开始的length个字符,如果没指定length,则返回剩余的字符。

4、数学函数:

Abs, count, max, min, sum

Ceil(arg):返回大于或等于arg的最小整数。

Floor(arg):返回小于或等于参数的最小整数。

Mod(arg1,arg2):返回arg1除以arg2的余数,符号与arg1相同。

Rand():返回11之间的随机数。

Power(arg1,arg2):返回arg1arg2次方。

Round(arg1,arg2):四舍五入截断处理,arg2是位数,如果arg2为负,则对小数点前的数做四舍五入处理。

Sigh(arg):返回arg的符号指示符。-1,0,1表示。

truncate(arg1,arg2):截断arg1arg2是位数,如果arg2是负数,则保留arg1小数点前的arg2位。

 

5、其他:

nullif(arg1,arg2):如果2个参数相等,则返回null,否则,返回参数1

 

<<转自:http://wangjierui.blog.51cto.com/186879/45977>>

 

 

AVG()返回一组数值的平均值. SELECTAVG(SALARY)FROMBSEMPMS;

CORR(),CORRELATION()返回一对数值的关系系数. SELECTCORRELATION(SALARY,BONUS)FROMBSEMPMS;

COUNT()返回一组行或值的个数. SELECTCOUNT(*)FROMBSEMPMS;

COVAR(),COVARIANCE()返回一对数值的协方差. SELECTCOVAR(SALARY,BONUS)FROMBSEMPMS;

MAX()返回一组数值中的最大值. SELECTMAX(SALARY)FROMBSEMPMS;

MIN()返回一组数值中的最小值. SELECTMIN(SALARY)FROMBSEMPMS;

STDDEV()返回一组数值的标准偏差. SELECTSTDDEV(SALARY)FROMBSEMPMS;

SUM()返回一组数据的和. SELECTSUM(SALARY)FROMBSEMPMS;

VAR(),VARIANCE()返回一组数值的方差. SELECTVARIANCE(SALARY)FROMBSEMPMS;

ABS(),ABSVAL()返回参数的绝对值. SELECTABS(-3.4)FROMBSEMPMS;

ACOS()返回参数的反余弦值. SELECTACOS(0.9)FROMBSEMPMS;

ASCII()返回整数参数最左边的字符的ASCII. SELECTASCII('R')FROMBSEMPMS;

ASIN()返回用弧度表示的角度的参数的反正弦函数. SELECTASIN(0.9)FROMBSEMPMS;

ATAN()返回参数的反正切值,该参数用弧度表示的角度的参数. SELECTATAN(0.9)FROMBSEMPMS;

ATAN2()返回用弧度表示的角度的XY坐标的反正切值. SELECTATAN2(0.5,0.9)FROMBSEMPMS;

BIGINT()返回整型常量中的数字或字符串的64位整数表示. SELECTBIGINT(EMP_NO)FROMBSEMPMS;

CEILING() OR CEIL() 返回比参数大或等于参数的最小的整数值. SELECTCEILING(3.56)FROMBSEMPMS; SELECTCEIL(4.67)FROMBSEMPMS;

CHAR()返回日期时间型,字符串,整数,十进制或双精度浮点数的字符串表示. SELECTCHAR(SALARY,',')FROMBSEMPMS;

CHR()返回具有由参数指定的ASCII码的字符. SELECTCHAR(167)FROMBSEMPMS;

CONCAT()返回两个字符串的连接. SELECTCONCAT(EMP_NO,EMP_NAM)FROMBSEMPMS;

YEAR()返回数值的年部分. SELECTYEAR('2003/01/02')FROMBSEMPMS;

VARCHAR()返回字符串,日期型,图形串的可变长度的字符串表示. SELECTVARCHAR(EMP_NAM,50)FROMBSEMPMS;

UCASE() OR UPPER() 返回字符串的大写. SELECT UCASE(EMP_NAM)FROMBSEMPMS; SELECTUPPER(EMP_NO)FROMBSEMPMS;

TRUNCATE() OR TRUNC() 从表达式小数点右边的位置开始截断并返回该数值. SELECTTRUNCATE(345.6789,2)FROMBSEMPMS;

TIME()返回一个数值中的时间. SELECTTIME('2001-03-19.12.30.123456')FROMBSEMPMS;

SUBSTR(EXP1,EXP2)返回EXP1串自EXP2处开始的子串. SELECT SUBSTR('CDNJFDJFJD',5)FROM BSEMPMS; SELECT SUBSTR('CDNJFDJFJD',5,2)FROM BSEMPMS;

SQRT()返回该参数的平方根. SELECTSQRT(36)FROMBSEMPMS;

SPACE()返回由参数指定的长度,包含空格在内的字符串. SELECTSPACE(10)FROMBSEMPMS;

SECOND()返回一个数值的秒部分. SELECTSECOND('18:34:32')FROMBSEMPMS;

RTRIM()删除字符串尾部的空格. SELECTRTRIM('COMMENT')FROMBSEMPMS;

ROUND(EXP1,EXP2)返回EXP1小数点右边的第EXP2位置处开始的四舍五入值. SELECTROUND(2345.6789,2)FROMBSEMPMS

REPLACE(EXP1,EXP2,EXP3)EXP3替代EXP1中所有的EXP2 SELECTCHAR(REPLACE('ROMANDD','NDD','CCB'),10)FROMBSEMPMS;

REPEAT(EXP1,EXP2)返回EXP1重复EXP2次后的字符串. SELECTCHAR(REPEAT('REPEAT',3),21)FROMBSEMPMS;

REAL()返回一个数值的单精度浮点数表示. SELECTREAL(10)FROMBSEMPMS;

RAND()返回01之间的随机浮点数. SELECTRAND()FROMBSEMPMS;

POWER(EXP1,EXP2)返回EXP1EXP2次幂. SELECTPOWER(2,5)FROMBSEMPMS;

POSSTR(EXP1,EXP2)返回EXP2EXP1中的位置. SELECT('ABCDEFGH','D')FROMBSEMPMS;

NULLIF(EXP1,EXP2)如果EXP1=EXP2,则为NULL,否则为EXP1

NODENUMBER()返回行的分区号. SELECTNODENUMBER(EMP_NO)FROMBSEMPMS;

MONTH()返回一个数值的月部分. SELECTMONTH('2003/10/20')FROMBSEMPMS;

MOD(EXP1,EXP2)返回EXP1除以EXP2的余数. SELECTMOD(20,8)FROMBSEMPMS;

MINUTE()返回一个数值的分钟部分. SELECTMINUTE('18:34:23')FROMBSEMPMS;

LTRIM()删除字符串前面的空格. SELECTLTRIM('CDDD')FROMBSEMPMS;

HOUR()返回一个数值的小时部分. SELECTHOUR('18:34:23')FROMBSEMPMS;

DOUBLE()如果参数是一个数字表达式,返回与其相对应的浮点数,如果参数是字符串表达式,则返回该数的字符串表达式. SELECTDOUBLE('5678')FROMBSEMPMS;

EXP()返回参数的指数函数. SELECTEXP(2)FROMBSEMPMS;

FLOAT()返回一个数的浮点表示. SELECTFLOAT(789)FROMBSEMPMS;

FLOOR()返回小于或等于参数的最大整数. SLECTFLOOR(88.93)FROMBSEMPMS;

HEX()返回一个表示为字符串的值的16进制表示. SELECTHEX(16)FROMBSEMPMS;

 

(days(date1)-days(date2))返回两日期间相差的天数

对单引号的处理 DB2 '' 代表 ' (即是用 两个单引号 代替 一个单引号)

 

转义字符

如果你想查询字符串中包含‘%’或‘_ ,就得使用转义字符(Escape Characters)。比如,要想查询book_title中包含字符串’99%’的纪录:

SELECT * FROM books WHERE book_title like %99!%% escape !

后面的escape !’是定一个转义字符‘!, 指明紧跟着转义字符’!'后的%不再是统配符。

 

 

cast(to_date('20091110','yyyy-MM-dd') as date) 转化为 2009-11-10

 

 

 

 

 

select 'EXPORT TO F:\20100910\' || tabname || '.DEL OF DEL SELECT * FROM BODS.' || tabname||' ;' from syscat.tables where tabschema='BODS' and type='T';

 

select 'LOAD CLIENT FROM D:\date\licaijijin\' || tabname || '.txt OF DEL INSERT INTO BODS.' || tabname||' ;' from syscat.tables where tabschema='BODS' and type='T';

 

 

LOAD CLIENT FROM 'F:\SR_CARD_MASTER_ADD.txt' OF DEL insert into

M_DEP_DM_AMT_INFO

("ACCT_NUM", "AMT_TYPE_CD", "CURR_CD", "DR_CR_FLAG", "AMT_VAL",

"N_O_FLAG", "MDS_VALID_FLAG", "BUSS_DT", "DATA_DT", "ADD_DT")

 

查看表空间和进程:

connect to frpfm user bill using bill123;

list tablespaces show detail;

list applications show detail;

 

 

CONNECT TO frtdb user db2inst1 using db2ist;

attach TO frtdb user db2inst1 using db2ist;

list applications show detail;

 

CONNECT TO frtdb user db2inst1 using db2ist;

attach TO frtdb user db2inst1 using db2ist;

force application(1916 );

 

 

 

导出

Export to d:\date\2010-09-22\BODS.M_DEP_DM_TRANS_INFO.txt of del select * from BODS.M_DEP_DM_TRANS_INFO;

Export to d:\date\2010-09-22\BODS.M_DEP_DM_AMT_INFO.txt of del select * from BODS.M_DEP_DM_AMT_INFO;

Export to d:\date\2010-09-22\BODS.M_CRD_DEBT_PPCARD_ACCT_INFO.txt of del select * from BODS.M_CRD_DEBT_PPCARD_ACCT_INFO;

Export to d:\date\2010-09-22\BODS.M_CRD_DEBT_PRPCD_PAY_TRANS.txt of del select * from BODS.M_CRD_DEBT_PRPCD_PAY_TRANS;

Export to d:\date\2010-09-22\BODS.M_CM_CRD_CARD_BIN.txt of del select * from BODS.M_CM_CRD_CARD_BIN;

Export to d:\date\2010-09-22\BODS.M_CRD_DEBT_CARD_MASTER.txt of del select * from BODS.M_CRD_DEBT_CARD_MASTER;

Export to d:\date\2010-09-22\BODS.M_CM_CRD_CARD_TYPE.txt of del select * from BODS.M_CM_CRD_CARD_TYPE;

Export to d:\date\2010-09-22\BODS.M_CRD_DEBT_CARD_ACCT.txt of del select * from BODS.M_CRD_DEBT_CARD_ACCT;

 

 

导入:

LOAD CLIENT FROM 'F:\SR_CARD_MASTER_ADD.txt' OF DEL insert into

M_DEP_DM_AMT_INFO

("ACCT_NUM", "AMT_TYPE_CD", "CURR_CD", "DR_CR_FLAG", "AMT_VAL",

"N_O_FLAG", "MDS_VALID_FLAG", "BUSS_DT", "DATA_DT", "ADD_DT")

 

LOAD CLIENT FROM 'D:\date\2010-11-23\T74_QSQ_B01.txt' OF DEL insert into

T74_QSQ_B01

("ORGANKEY", "ORGANNAME", "CURRENCY_CD", "PARTY_NUM", "PARTY_NUM_LAST", "PARTY_DM_BAL", "PARTY_DM_BAL_LAST", "PARTY_DM_BAL_AVG", "PARTY_DM_BAL_AVG_LAST", "GRANULARITY","TERM","ETL_DT")

 

 

 

 

import from 'D:\date\2010-11-23\T74_QSQ_B01.txt' OF DEL insert into T74_QSQ_B01

("ORGANKEY", "ORGANNAME", "CURRENCY_CD", "PARTY_NUM", "PARTY_NUM_LAST", "PARTY_DM_BAL", "PARTY_DM_BAL_LAST", "PARTY_DM_BAL_AVG", "PARTY_DM_BAL_AVG_LAST", "GRANULARITY","TERM","ETL_DT")

 

*************************************************DB2 imp中文方法(乱码解决)********************************************************************************

1.数据库环境为GBK,但是导入数据时候出现乱码解决方式如下

STEP1.查看DB2环境字符集,命令:db2set

DB2COMM=tcpip

DB2CODEPAGE=1386

DB2_PARALLEL_IO=*

DB2AUTOSTART=YES

STEP2.如上所示 数据库字符集为1386GBK)现在修改为UTF-81208)执行以下命令:db2set DB2CODEPAGE=1208 然后重启DB2服务 db2stop force(关闭DB2服务)db2start(启动DB2

 


转载于:https://my.oschina.net/swchenml/blog/476091

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值