初次接触使用DB2,发现于之前使用过的MySQL、SQL server以及Oracle等数据库还是会有诸多“不适”,这篇文章便是用于收集并记录一些DB2中常用的命令。

一、基础篇

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

2、连接到远程数据库
db2 connect to <数据库名> user <用户名> using <密码>

3、列出目前所有数据库(当前实例中)
db2 list db directory

4、进入db2数据库命令行模式
db2

3、备份指定数据库数据(整个库都备份)
db2 backup db <数据库名>
还原数据库
db2 restore db <数据库名>

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

5、强制关闭实例上的所有应用程序
db2 force application all

6、数据库(实例)启动和停止
db2start/db2stop

7、显示所有的实例
db2ilist

8、显示当前的实例
db2 get instance

9、数据库创建并指定编码集
create database <数据库名> using codeset utf-8 temtory CN

10、db2 catalog 命令
(1)将远程数据库映射到本地接点一般为50000
db2 catalog tcpip node <接点名称> remote <远程数据库地址> server <端口号>
(2)远程数据库名称到本地接点
db2 catalog db <远程数据库名称> as <接点名称> at node PUB11
(3)接连本地接点访问远程数据库
db2 connect to <接点名称> user <用户名> using <密码>

11、数据库导出
(1)导出数据库的表结构,其中用户空间一般为db2admin/db2inst1
db2look -d <数据库名> -u <用户> -e -o <脚本名称>.sql
(2)导出数据库中表1和表2的表结构
db2look -d <数据库名> -u <用户> -t <表1> <表2> -e -o <脚本名称>.sql
例如:db2look -d ibps -t IBPS_BIM_TRANSFER -e -a -x -i db2iipod -w db2iipod -o /var/tep/transfer_stru.sql
(3)导出数据库数据
db2move <数据库名> export
(4)导出数据库中表和表数据
db2move <数据库名> export -tn <表1>,<表2>

12、数据库导入
(1)将上述导出的 表结构导入到数据库表结构
db2look -tvf <脚本名称>.sql
(2)将上述“db2move <数据库名> export”导出的数据导入到数据库中并把相同的数据替换掉
db2move <数据库名> load -lo replace
在实际使用过程中,如果用到db2自增主键,需要使用by default,而不是always,功能时一样的,但这样在数据移植时侯会很方便

13、断开与数据库的连接
db2 connect reset或db2 terminate

14、修改页编码为1208
db2set db2codepage=1208

15、查看表结构
db2 describe table <表名>

16、查看数据库中所有表(结构)
db2 list tables

17、列出所有系统表
list tables for system

18、列出表空间
db2 list tablespaces [show detail]
注意:show detail为可选项,显示更详细信息或者db2pd -tablespaces -db 数据库名

二、拔高篇

1、列出表中前10条数据fetch first 10 rows only
例如:select * from <表名> fetch first 10 rows only

2、对是null的字段进行值转换coalesce(字段名,转换后的值)
例如:select coalesce(id,1) from <表名>-对表中id如果为null转换成1

3、计算出日期中是周几(1是周日…7是周六)—dayofweek(日期)
计算出日期中是周几(1是周一…7是周日)—dayofweek_iso(日期)
例如:dayofweek(date(2008-01-16))-返回4,代表星期三
dayofweek_iso(date(2008-01-16))-返回3,代表星期三

4、一年中的第几天,范围在1-366范围之内dayofyear(日期)
注意:参数中日期的格式是YYYY-MM-DD的形式,如果不是需要进行转换,否则函数不能使用
例如:日期是20080116必须要进行转dayofweek(concat(concat(substr(openDate,1,4),’-’),concat(substr(openDate,5,2),’-’)),substr(openDate,7,2)) as week这样格式正确的。

5、将参数1加上连接值组成一个新值concat(参数1,连接值)
例如:concat(‘aa’,‘b’)-返回是aab
将oracle表导入到db2数据库中,有些字段类型需要进行转换,具体看:oracle与db2数据类型转换

6、恢复表db2 "reorg table mesg.TABLENAME";

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐