1.IMPORT语句使用语法
import from /home/movedata/mytbl.ixf of ixf insert into mytbl
*skipcount与restartcount意义相同*
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
一、基础篇
1、db2 connect to <数据库名> --连接到本地数据库名
db2 connect to <数据库名> user <用户名> using <密码> --连接到远端数据库
2、 db2 force application all --强迫所有应用断开数据库连接
3、db2 backup db db2name<数据库名称> --备份整个数据库数据
db2 restore db <db2name> --还原数据库
4、db2 list application --查看所有连接(需要连接到具体数据库才能查看)
5、db2start --启动数据库
db2stop --停止数据库
6、create database <数据库名> using codeset utf-8 territory CN --创建数据库使用utf-8编码
7、db2 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,功能是一样的,但这样在数据移植时候会很方便!
10、db2 connect reset 或 db2 terminate --断开与数据库的连接
11、db2set db2codepage=1208 --修改页编码为1208
12、db2 describe table <表名> --查看表结构
13、db2 list tables --查看数据库中所有表结构
list tables for system --列出所有系统表
14、db2 list tablespaces --列出表空间
15、 alter table CRR.TMP_JC010101_LOAN activate not logged initially with empty table --清空表内容
二、高级篇
15、fetch first 10 rows only --列出表中前10条数据
例如:select * from <表名> fetch first 10 rows only
16、coalesce(字段名,转换后的值) --对是null的字段进行值转换
例如:select coalesce(id,1) from <表名> --对表中id如果为null转换成1
17、dayofweek(日期) --计算出日期中是周几(1是周日,2是周一.......7是周六)
dayofweek_iso --计算出日期中是周几(1是周一.......7是周日)
例如:dayofweek(date(2008-01-16)) --它会返回是4,代表星期三
dayofweek_iso(date(2008-01-16)) --它会返回是3,代表星期三
18、dayofyear(日期) --一年中的第几天,范围在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)
这样格式正确的。
19、concatt(参数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):连接两个字符串arg1和arg2。
insert(arg1,pos,size,arg2):返回一个,将arg1从pos处删除size个字符,将arg2插入该位置。
left(arg,length):返回arg最左边的length个字符串。
locate(arg1,arg2,<pos>):在arg2中查找arg1第一次出现的位置,指定pos,则从arg2的pos处开始找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>):返回arg1中pos位置开始的length个字符,如果没指定length,则返回剩余的字符。
4、数学函数:
Abs, count, max, min, sum
Ceil(arg):返回大于或等于arg的最小整数。
Floor(arg):返回小于或等于参数的最小整数。
Mod(arg1,arg2):返回arg1除以arg2的余数,符号与arg1相同。
Rand():返回1到1之间的随机数。
Power(arg1,arg2):返回arg1的arg2次方。
Round(arg1,arg2):四舍五入截断处理,arg2是位数,如果arg2为负,则对小数点前的数做四舍五入处理。
Sigh(arg):返回arg的符号指示符。-1,0,1表示。
truncate(arg1,arg2):截断arg1,arg2是位数,如果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()返回用弧度表示的角度的X和Y坐标的反正切值. 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()返回0和1之间的随机浮点数. SELECTRAND()FROMBSEMPMS;
POWER(EXP1,EXP2)返回EXP1的EXP2次幂. SELECTPOWER(2,5)FROMBSEMPMS;
POSSTR(EXP1,EXP2)返回EXP2在EXP1中的位置. 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.如上所示 数据库字符集为1386(GBK)现在修改为UTF-8(1208)执行以下命令:db2set DB2CODEPAGE=1208 然后重启DB2服务 :db2stop force(关闭DB2服务)db2start(启动DB2)