db2数据库 | 常见操作

[官方文档] db2_10.5.0

Part 1 表创建

一、创建实例(instance)

s1:首先创建和实例名一样的用户及该用户所属的组
s2: /opt/ibm/db2/V9.7/instance/db2icrt -a server -u db2fcomm db2icomm
[参考] 创建实例

二、创建数据库

create database db_name;

[其他]

connect to db_name;//链接数据库

三、创建表空间(tablespace)

create talespace tablespacename;
//列出表空间
list tabespaces show detail;

四、创建schema(可不创建,创建表时默认创建)

create schema <schema-name> [authorization <schema-owner-name>];

五、创建表

create table [schema.]tablename(1 属性[,列2 属性, ...]) in tablespace_name index in tablespace_name
//查看表
list tables [for [all| schema sc_name]];//列出数据库中的表,schema默认为用户名

[参考] DB2数据库几个概念:instance、schema、database

Part2 查看数据库配置/表结构

1、查看数据库配置:

get db cfg for db_name;

2、查看表结构:

##shell语句
#法1:
db2 describe table table_name
#法2:
db2look -d db_name -e -o file_name.sql

Part3 修改字段

//1.修改字段类型
alter table 表名 alter column 字段名 set data type varchar(50);
//2.修改字段默认值
alter table 表名 alter column 字段名 set default;
//3.增加字段
alter table 表名 add column 字段名 字段类型;

Part4 导入/导出数据

1、导出:

//使用默认分隔符“,”
export to filen_ame.txt of del select * from table_name [where ...];
//自定义分隔符
export to filen_ame.txt of del modified by coldel| elect * from table_name [where ...];

2、导入:

//默认分隔符“,”
import from file_name.txt of del insert into table_name;
//自定义分隔符"|"
import from file_name.txt of del modified by coldel| insert into table_name;

Part5 增删查改

1、增:

insert into table table_name values(value1,value2,value3),(.value1,value2,value3),...;
insert into table table_name(col1,col2,...) values(value1,value2,...),(.value1,value2,...),...;

2、删:

delete * from table_name [where...];//不建议
delete from (select * from table_name [where ...]);//较上一语句好点但建议少用

3、查

select1,2,...//可用*代表全部列
from table1[[left|right|inner] join table2 on 条件 ]
where 条件1
and 条件2
and ...
group by 分组依据列
order by 排序依据列 [asc|desc];

4、改

update table tble_name set col1=value1,col2=value2,...;

Part 6 优化数据库

//法1:
reorg table table_name;
//法2:
runstats on table table_name with disttribution and indexs all;

也可用/btp/bin下提供的sh程序runsall

Part 7 执行批处理文件

db2 -tf 批处理文件名 #批处理文件中的命令须用“;”结束

参数说明:
-tf:普通执行,f后须紧接文件名;
-v:将sql文件内容打印出来,组合使用-tvf;
-s:指每次遇到报错的命令就停止执行,后面的sql不再执行,组合使用-tvsf。

Part 8 数据库备份

1、离线备份&恢复
离线:表示当执行操作时,没有其他的用户连接到数据库。所以在备份前,要确保没有用户连接到数据库

//s001 列出活动的应用/数据库
db2 list application;
//s011 若有
db2 force applications all;
//s012 终止数据库连接
db2 terminate;
//s013 关闭数据库
db2 deactivate database 库名;  
//s1、离线备份
db2 backup database 库名 to 备份目录;//备份目录须存在
//s2.离线恢复
db2 restore database 库名 from 目录名 taken at 时间戳;
//s014 如果执行了脱机备份,那么在备份完成后,必须重新激活该数据库
db2 ACTIVATE DATABASE sample;
  1. 在线备份&恢复
//1.备份
archive log for database 库名;
backup database 库名 online to 备份目录;
//2.恢复
force applications all; //停掉数据库应用
restore database 库名 from "备份目录" logtarget "日志路径" ;
rollforward db 库名 to end of logs and complete overflow log path ("日志路径");//回滚到日志结束(可不执行,即不恢复日志)

[参考]

  1. DB2数据库备份与恢复
  2. DB2 备份与还原
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值