DB2必须了解的常用命令及技巧(转)
1.db2里面的字符串连接可用"||"这个进行连接
2.如何快速删除大批量的数据表(test为数据库表)
最常用也是最多人用的语句:delete from test,但这种做法,效率比较低,花费时间太长,因为在删除数据时,要记数据库日志。
import from /dev/null of del replace into test//先清空,再导入数据(由于导入的文件为空,故相当于清空表数据),这种删除的速度较快
ALTER TABLE test activate NOT LOGGED initially WITH EMPTY TABLE ;删除表中的数据,不记日志,这种处理最快
3.导入、导出数据,支持的文件有ixf,del文件
db2 "export to fileName.del of del select * from tableName" //db2中把表中的数据导入到文件
db2 "import from fileName.del of del insert into tableName " //db2中把文件中的数据导入到表
4.DB2中检查表是否已存在
select * from "SYSIBM"."SYSTABLES" where lower(name) ='afa_maintransdtl'
5.处理db2锁表问题:
db2 “connect to afa”
db2 “get snapshot for locks on 实例名”
db2 “terminate”
然后查看相关信息,找到被锁定的表,执行以下语句:
db2 “force application(application handle) 注:application handle对应的是一个整数
6.在服务器上创建存储过程时:
应为存储过程指定特定的换行符,然后执行下面的语句:
db2 -td@ -vf fileName.sql (其中@为存储过程中指定的换行符)
7. 查看索引是否起作用
runstats on table afa.yj_jywtk with distribution and detailed indexes all;
8.截取数据库快照:
db2 "connect to 实例名"
db2 "update monitor switches using lock ON sort ON bufferpool ON uow ON table ON statement ON"
db2 "get snapshot for all on 实例名"
9. 查看存储过程
select procname,text from sysibm.sysprocedures;
10.list tables 查看数据库表
11.查找字符在字串中的位置
locate('y','xyz')
查找'y'在'xyz'中的位置。
12. 计算两个日期的相差天数
days(date('2007-03-01'))-days(date('2007-02-28'))
days 返回的是从 0001-01-01 开始计算的天数
13. 为一个用户访问另一个实例创建表映射
create alias tableName for 实例名. tableName
14.如何查看表结构
describe table tableName
or
describe select * from table_name
15.如何重新启动数据库?
restart database database_name
16.如何激活数据库?
activate database database_name
17.如何停止数据库?
deactivate database database_name
18.如何重命名表?
rename table_old to table_new
19.如何定义序列?
create sequence orderseq start with 1 increment by 1 no maxvalue no cycle cache24
20.如何查看一个表的索引
describe indexes for table tableName show detail