DB2数据库命令简介
1.启动数据库
db2start
2.停止数据库
db2stop
3.连接数据库
db2 connect to o_yd user db2 using pwd
4.读数据库管理程序配置
db2 get dbm cfg
5.写数据库管理程序配置
db2 update dbm cfg using 参数名 参数值
6.读数据库的配置
db2 connect to o_yd user db2 using pwd
db2 get db cfg for o_yd
7.写数据库的配置
db2 connect to o_yd user db2 using pwd
db2 update db cfg for o_yd using 参数名 参数值
8.关闭所有应用连接
db2 force application all
db2 force application ID1,ID2,Idn MODE ASYNC
(db2 list application for db o_yd show detail)
9.备份数据库
db2 force application all
db2 backup db o_yd to d:
(db2 initialize tape on //./tape0)
(db2 rewind tape on //./tape0)
db2 backup db o_yd to //./tape0
10.恢复数据库
db2 restore db o_yd from d: to d:
db2 restore db o_yd from //./tape0 to d:
11.绑定存储过程
db2 connect to o_yd user db2 using pwd
db2 bind c:/dfplus.bnd
拷贝存储过程到服务器上的C:/sqllib/function目录中
12.整理表
db2 connect to o_yd user db2 using pwd
db2 reorg table ydd
db2 runstats on table ydd with distribution and indexes
all
13.导出表数据
db2 export to c:/dftz.txt of del select * from dftz
db2 export to c:/dftz.ixf of ixf select * from dftz
14.导入表数据
import from c:/123.txt of del insert into ylbx.czyxx
db2 import to c:/dftz.txt of del commitcount 5000 messages
c:/dftz.msg insert into dftz
db2 import to c:/dftz.ixf of ixf commitcount 5000 messages
c:/dftz.msg insert into dftz
db2 import to c:/dftz.ixf of ixf commitcount 5000 insert
into dftz
db2 import to c:/dftz.ixf of ixf commitcount 5000
insert_update into dftz
db2 import to c:/dftz.ixf of ixf commitcount 5000 replace
into dftz
db2 import to c:/dftz.ixf of ixf commitcount 5000 create
into dftz (仅IXF)
db2 import to c:/dftz.ixf of ixf commitcount 5000
replace_create into dftz (仅IXF)
15.执行一个批处理文件
db2 -tf 批处理文件名
(文件中每一条命令用 ;结束)
16.自动生成批处理文件
建文本文件:temp.sql
select ‘runstats on table DB2.’ || tabname || ’
with distribution and detailed indexes all;’
from syscat.tables where tabschema=‘DB2’ and type=‘T’;
db2 -tf temp.sql>runstats.sql
17.自动生成建表(视图)语句
在服务器上:C:/sqllib/misc目录中
db2 connect to o_yd user db2 using pwd
db2look -d o_yd -u db2 -e -p -c c:/o_yd.txt
18.其他命令
grant dbadm on database to user bb
19select * from czyxx fetch first 1 rows only
20db2look -d ylbx -u db2admin -w -asd -a -e -o a.txt21.
显示当前用户所有表
list tables
22.列出所有的系统表
list tables for system
23.查看表结构
db2 describe select * from user.tables
一、基础篇
1、db2 connect to --连接到本地数据库名
db2 connect to user
using --连接到远端数据库
2、 db2 force application all --强迫所有应用断开数据库连接
3、db2 backup db db2name --备份整个数据库数据
db2 restore db --还原数据库
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
-e -o
.sql --导出数据库中表1和表2的表结构
db2move export --导出数据库数据
db2move export -tn
, --导出数据库中表和表数据
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、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
连接数据库:
connect to [数据库名] user
[操作用户名] using [密码]
创建缓冲池(8K):
create bufferpool
ibmdefault8k IMMEDIATE SIZE
5000 PAGESIZE 8 K ;
创建缓冲池(16K)(OA_DIVERTASKRECORD):
create bufferpool
ibmdefault16k IMMEDIATE SIZE
5000 PAGESIZE 16 K ;
创建缓冲池(32K)(OA_TASK):
create bufferpool
ibmdefault32k IMMEDIATE SIZE
5000 PAGESIZE 32 K ;
创建表空间:
CREATE TABLESPACE
exoatbs IN DATABASE PARTITION GROUP IBMDEFAULTGROUP PAGESIZE 8K
MANAGED BY SYSTEM USING (’/home/exoa2/exoacontainer’) EXTENTSIZE 32
PREFETCHSIZE 16 BUFFERPOOL
IBMDEFAULT8K OVERHEAD 24.10
TRANSFERRATE 0.90 DROPPED
TABLE RECOVERY OFF;
CREATE TABLESPACE
exoatbs16k IN DATABASE
PARTITION GROUP IBMDEFAULTGROUP PAGESIZE 16K MANAGED BY SYSTEM
USING (’/home/exoa2/exoacontainer16k’ ) EXTENTSIZE
32 PREFETCHSIZE
16 BUFFERPOOL
IBMDEFAULT16K OVERHEAD 24.1
TRANSFERRATE 0.90 DROPPED
TABLE RECOVERY OFF;
CREATE TABLESPACE
exoatbs32k IN DATABASE
PARTITION GROUP IBMDEFAULTGROUP PAGESIZE 32K MANAGED BY SYSTEM
USING (’/home/exoa2/exoacontainer32k’ ) EXTENTSIZE
32 PREFETCHSIZE
16 BUFFERPOOL
IBMDEFAULT32K OVERHEAD 24.1
TRANSFERRATE 0.90 DROPPED
TABLE RECOVERY OFF;
GRANT USE OF TABLESPACE exoatbs TO PUBLIC;
GRANT USE OF TABLESPACE exoatbs16k TO PUBLIC;
GRANT USE OF TABLESPACE exoatbs32k TO PUBLIC;
创建系统表空间:
CREATE TEMPORARY
TABLESPACE exoasystmp IN DATABASE PARTITION GROUP IBMTEMPGROUP
PAGESIZE 8K MANAGED BY SYSTEM
USING (’/home/exoa2/exoasystmp’ ) EXTENTSIZE 32 PREFETCHSIZE
16 BUFFERPOOL IBMDEFAULT8K OVERHEAD 24.10 TRANSFERRATE 0.90 DROPPED TABLE RECOVERY OFF;
CREATE TEMPORARY
TABLESPACE exoasystmp16k IN DATABASE PARTITION GROUP IBMTEMPGROUP
PAGESIZE 16K MANAGED BY SYSTEM USING
(’/home/exoa2/exoasystmp16k’ )
EXTENTSIZE 32 PREFETCHSIZE 16 BUFFERPOOL IBMDEFAULT16K OVERHEAD
24.10 TRANSFERRATE 0.90 DROPPED TABLE RECOVERY OFF;
CREATE TEMPORARY
TABLESPACE exoasystmp32k IN DATABASE PARTITION GROUP IBMTEMPGROUP
PAGESIZE 32K MANAGED BY SYSTEM USING (’/home/exoa2/exoasystmp32k’)
EXTENTSIZE 32 PREFETCHSIZE 16 BUFFERPOOL IBMDEFAULT32K OVERHEAD
24.10 TRANSFERRATE 0.90 DROPPED TABLE RECOVERY OFF;
- 启动实例(db2inst1):
db2start
- 停止实例(db2inst1):
db2stop
- 列出所有实例(db2inst1)
db2ilist
5.列出当前实例:
db2 get instance
- 察看示例配置文件:
db2 get dbm cfg|more
- 更新数据库管理器参数信息:
db2 update dbm cfg using para_name para_value
- 创建数据库:
db2 create db test
- 察看数据库配置参数信息
db2 get db cfg for test|more
- 更新数据库参数配置信息
db2 update db cfg for test using para_name para_value
10.删除数据库:
db2 drop db test
11.连接数据库
db2 connect to test
12.列出所有表空间的详细信息。
db2 list tablespaces show detail
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
399/.列出容器的信息
db2 list tablespace containers for tbs_id show detail
40.创建表:
db2 ceate table tb1(id integer not null,name char(10))
41.列出所有表
db2 list tables
42.插入数据:
db2 insert into tb1 values(1,’sam’);
db2 insert into tb2 values(2,’smitty’);
. 建立数据库DB2_GCB
CREATE DATABASE DB2_GCB ON G: ALIAS DB2_GCB
USING CODESET GBK TERRITORY CN COLLATE USING SYSTEM
DFT_EXTENT_SZ 32
- 连接数据库
connect to sample1 user db2admin using 8301206
- 建立别名
create alias db2admin.tables for sysstat.tables;
CREATE ALIAS DB2ADMIN.VIEWS FOR SYSCAT.VIEWS
create alias db2admin.columns for syscat.columns;
create alias guest.columns for syscat.columns;
- 建立表
create table zjt_tables as
(select * from tables) definition only;
create table zjt_views as
(select * from views) definition only;
- 插入记录
insert into zjt_tables select * from tables;
insert into zjt_views select * from views;
- 建立视图
create view V_zjt_tables as select tabschema,tabname from
zjt_tables;
- 建立触发器
CREATE TRIGGER zjt_tables_del
AFTER DELETE ON zjt_tables
REFERENCING OLD AS O
FOR EACH ROW MODE DB2SQL
Insert into zjt_tables1
values(substr(o.tabschema,1,8),substr(o.tabname,1,10))
- 建立唯一性索引
CREATE UNIQUE INDEX I_ztables_tabname
[size=3]ON zjt_tables(tabname);
- 查看表
select tabname from tables
where tabname=‘ZJT_TABLES’;
- 查看列
select SUBSTR(COLNAME,1,20) as 列名,TYPENAME as 类型,LENGTH as
长度
from columns
where tabname=‘ZJT_TABLES’;
- 查看表结构
db2 describe table user1.department
db2 describe select * from user.tables
- 查看表的索引
db2 describe indexes for table user1.department
- 查看视图
select viewname from views
where viewname=‘V_ZJT_TABLES’;
- 查看索引
select indname from indexes
where indname=‘I_ZTABLES_TABNAME’;
- 查看存贮过程
SELECT SUBSTR(PROCSCHEMA,1,15),SUBSTR(PROCNAME,1,15)
FROM SYSCAT.PROCEDURES;
- 类型转换(cast)
ip datatype:varchar
select cast(ip as integer)+50 from log_comm_failed
- 重新连接
connect reset
- 中断数据库连接
disconnect db2_gcb
- view application
LIST APPLICATION;
- kill application
FORCE APPLICATION(0);
db2 force applications all (强迫所有应用程序从数据库断开)
- lock table
lock table test in exclusive mode
- 共享
lock table test in share mode
- 显示当前用户所有表
list tables
- 列出所有的系统表
list tables for system
- 显示当前活动数据库
list active databases
- 查看命令选项
list command options
- 系统数据库目录
LIST DATABASE DIRECTORY
- 表空间
list tablespaces
- 表空间容器
LIST TABLESPACE CONTAINERS FOR
Example: LIST TABLESPACE CONTAINERS FOR 1
- 显示用户数据库的存取权限
GET AUTHORIZATIONS
- 启动实例
DB2START
- 停止实例
db2stop
- 表或视图特权
grant select,delete,insert,update on tables to user
grant all on tables to user WITH GRANT OPTION
- 程序包特权
GRANT EXECUTE
ON PACKAGE PACKAGE-name
TO PUBLIC
- 模式特权
GRANT CREATEIN ON SCHEMA SCHEMA-name TO USER
- 数据库特权
grant connect,createtab,dbadm on database to user
- 索引特权
grant control on index index-name to user
- 信息帮助 (? XXXnnnnn )
例:? SQL30081
- SQL 帮助(说明 SQL 语句的语法)
help statement
例如,help SELECT
- SQLSTATE 帮助(说明 SQL 的状态和类别代码)
? sqlstate 或 ? class-code
- 更改与"管理服务器"相关的口令
db2admin setid username password
- 创建 SAMPLE 数据库
db2sampl
db2sampl F:(指定安装盘)
- 使用操作系统命令
! dir
- 转换数据类型 (cast)
SELECT EMPNO, CAST(RESUME AS VARCHAR(370))
FROM EMP_RESUME
WHERE RESUME_FORMAT = ‘ascii’
- UDF
要运行 DB2 Java 存储过程或 UDF,还需要更新服务器上的 DB2 数据库管理程序配置,以包括在该机器上安装 JDK
的路径
db2 update dbm cfg using JDK11_PATH d:sqllibjavajdk
TERMINATE
update dbm cfg using SPM_NAME sample
- 检查 DB2 数据库管理程序配置
db2 get dbm cfg
- 检索具有特权的所有授权名
SELECT DISTINCT GRANTEE, GRANTEETYPE, ‘DATABASE’ FROM
SYSCAT.DBAUTH
UNION
SELECT DISTINCT GRANTEE, GRANTEETYPE, 'TABLE ’ FROM
SYSCAT.TABAUTH
UNION
SELECT DISTINCT GRANTEE, GRANTEETYPE, 'PACKAGE ’ FROM
SYSCAT.PACKAGEAUTH
UNION
SELECT DISTINCT GRANTEE, GRANTEETYPE, 'INDEX ’ FROM
SYSCAT.INDEXAUTH
UNION
SELECT DISTINCT GRANTEE, GRANTEETYPE, 'COLUMN ’ FROM
SYSCAT.COLAUTH
UNION
SELECT DISTINCT GRANTEE, GRANTEETYPE, 'SCHEMA ’ FROM
SYSCAT.SCHEMAAUTH
UNION
SELECT DISTINCT GRANTEE, GRANTEETYPE, 'SERVER ’ FROM
SYSCAT.PASSTHRUAUTH
ORDER BY GRANTEE, GRANTEETYPE, 3
create table yhdab
(id varchar(10),
password varchar(10),
ywlx varchar(10),
kh varchar(10));
create table ywlbb
(ywlbbh varchar(8),
ywmc varchar(60))
- 修改表结构
alter table yhdab ALTER kh SET DATA TYPE varchar(13);
alter table yhdab ALTER ID SET DATA TYPE varchar(13);
alter table lst_bsi alter bsi_money set data type int;
insert into yhdab values
(‘20000300001’,‘123456’,‘user01’,‘20000300001’),
(‘20000300002’,‘123456’,‘user02’,‘20000300002’);
- 业务类型说明
insert into ywlbb values
(‘user01’,‘业务申请’),
(‘user02’,‘业务撤消’),
(‘user03’,‘费用查询’),
(‘user04’,‘费用自缴’),
(‘user05’,‘费用预存’),
(‘user06’,‘密码修改’),
(‘user07’,‘发票打印’),
(‘gl01’,‘改用户基本信息’),
(‘gl02’,‘更改支付信息’),
(‘gl03’,‘日统计功能’),
(‘gl04’,‘冲帐功能’),
(‘gl05’,‘对帐功能’),
(‘gl06’,‘计费功能’),
(‘gl07’,‘综合统计’)
备份数据库:
CONNECT TO EXOA;
QUIESCE DATABASE IMMEDIATE FORCE CONNECTIONS;
CONNECT RESET;
BACKUP DATABASE EXOA TO “/home/exoa2/db2bak/” WITH 2 BUFFERS
BUFFER 1024 PARALLELISM 1 WITHOUT PROMPTING;
CONNECT TO EXOA;
UNQUIESCE DATABASE;
CONNECT RESET;
以下是小弟在使用db2move中的一些经验,希望对大家有所帮助。
db2 connect to YOURDB
连接数据库
db2look -d YOURDB -a -e -x -o
creatab.sql
导出建库表的SQL
db2move YOURDB export
用db2move将数据备份出来
vi creatab.sql
如要导入的数据库名与原数据库不同,要修改creatab.sql中CONNECT 项
如相同则不用更改
db2move NEWDB load
将数据导入新库中
在导入中可能因为种种原因发生中断,会使数据库暂挂
db2 list tablespaces show detail
如:
详细说明:
装入暂挂
总页数 = 1652
可用页数 = 1652
已用页数 = 1652
空闲页数 = 不适用
高水位标记(页) = 不适用
页大小(字节) =
4096
盘区大小(页) = 32
预读取大小(页) = 32
容器数 = 1
状态更改表空间标识 = 2
状态更改对象标识 = 59
db2 select tabname,tableid from syscat.tables where
tableid=59
查看是哪张表挂起
表名知道后到db2move.lst(在db2move YOURDB export的目录中)中找到相应的.ixf文件
db2 load from tab11.ixf of ixf terminate into
db2admin.xxxxxxxxx
tab11.ixf对应的是xxxxxxxxx表
数据库会恢复正常,可再用db2 list tablespaces show detail查看
30.不能通过GRANT授权的权限有哪种?
SYSAM
SYSCTRL
SYSMAINT
要更该述权限必须修改数据库管理器配置参数
31.表的类型有哪些?
永久表(基表)
临时表(说明表)
临时表(派生表)
32.如何知道一个用户有多少表?
SELECT*FROMSYSIBM.SYSTABLESWHERECREATOR=‘USER’
33.如何知道用户下的函数?
select*fromIWH.USERFUNCTION
select*fromsysibm.SYSFUNCTIONS
34.如何知道用户下的VIEW数?
select*fromsysibm.sysviewsWHERECREATOR=‘USER’
35.如何知道当前DB2的版本?
select*fromsysibm.sysvERSIONS
36.如何知道用户下的TRIGGER数?
select*fromsysibm.SYSTRIGGERSWHERESCHEMA=‘USER’
37.如何知道TABLESPACE的状况?
select*fromsysibm.SYSTABLESPACES
38.如何知道SEQUENCE的状况?
select*fromsysibm.SYSSEQUENCES
39.如何知道SCHEMA的状况?
select*fromsysibm.SYSSCHEMATA
40.如何知道INDEX的状况?
select*fromsysibm.SYSINDEXES
41.如何知道表的字段的状况?
select*fromsysibm.SYSCOLUMNSWHERETBNAME=‘AAAA’
42.如何知道DB2的数据类型?
select*fromsysibm.SYSDATATYPES
43.如何知道BUFFERPOOLS状况?
select*fromsysibm.SYSBUFFERPOOLS
44.DB2表的字段的修改限制?
只能修改VARCHAR2类型的并且只能增加不能减少.
45.如何查看表的结构?
DESCRIBLETABLETABLE_NAME
OR
DESCRIBLESELECT*FROMSCHEMA.TABLE_NAME
————————————————
原文链接:https://blog.youkuaiyun.com/weixin_28811055/article/details/113910270