DB2数据库实用小结
1、创建DB2数据库实例(在db2 =>下执行)
db2 =>
create tablespace resource1 managed by database using (file ‘/home/db2inst1/db2inst1/NODE0000/YOURDB实例/cont0’ 1500000)
2、DB2数据库修改表空间(在db2授权用户即可执行,使用db2 ” “)
db2 “alter tablespace RESOURCE add(file ‘/home/db2inst1/db2inst1/NODE0000/YOURDB实例/cont1’ 16G)”
3、查看db2数据库版本(在db2用户执行)或db2level(在授权用户执行即可)
db2inst1@name-1:~> db2licm -l
Product name: “DB2 Enterprise Server Edition”
License type: “CPU Option”
Expiry date: “Permanent”
Product identifier: “db2ese”
Version information: “10.1”
Enforcement policy: “Soft Stop”
Features:
DB2 Storage Optimization: “Not licensed”
DB2 pureScale: “Not licensed”Product name: “DB2 Connect Server”
Expiry date: “Expired”
Product identifier: “db2consv”
Version information: “10.1”
Concurrent connect user policy: “Disabled”
Enforcement policy: “Soft Stop”
4、DB2数据库启动(在db2用户执行)
db2inst1@name-1:~> db2start
5、DB2数据库执行sql脚本命令()
db2 -tvf d:\ddl.sql -z d:\ddl.log
6、DB2数据库连接(在授权用户即可执行)
db2 connect to testdb(实例名) user tsas(用户名) using password(密码)
7、断开数据库所有连接(在db2用户执行)
db2inst1@name-1:~> db2 terinate
8、DB2数据库强制停止 (在db2用户执行)
db2inst1@name-1:~> db2stop force
2018-08-03 21:40:46 0 0 SQL1064N DB2STOP processing was successful.
SQL1064N DB2STOP processing was successful.
9、DB2数据库只查询指定条数(在授权用户即可执行)
name@Tsas:~> db2 “select * from APP_WORKDAYS where 1=1 fetch first 2 rows only”
WORKDATE ISWORKDAY
2012-09-02 0
2012-09-03 1
10、导出单个表表结构(在db2用户执行)
db2inst1@Tsas:~> db2look -e -d tsasdb -i tsas -w password -tw APP_WORKDAYS -o APP_WORKDAYS.sql
– No userid was specified, db2look tries to use Environment variable USER
– USER is: DB2INST1
– Generate DDLs for tables whose names match the pattern criteria (wildcard characters) of the table name
– Creating DDL for table(s)
– Output is sent to file: APP_WORKDAYS.sql
11、创建索引(在授权用户执行即可)
db2 “create index index_name on “FINANCE”.”PUB_ACCTCHKINFO”(“PAYEEBANKNO”,”PAYEEOPENBANKNO”,”PAYEEACCTNO”,”PAYEEACCTNAME”)”
非唯一索引:db2 “create index ind_taxfile on table_name(taxfile)”
唯一索引:db2 “create unique index ind_empno on emp(empno)”
12、查看已有索引(在授权用户执行即可)
db2 “describe indexes for table table_name show detail”
- 不使用 show detail 也可
13、删除索引(在授权用户执行即可)
db2 “drop index ind_name”
14、DB2数据库新建检查约束(在授权用户执行即可)
db2 “ALTER TABLE table_name ADD CHECK (ziduanming like ‘2%’)”
- 数据库表插入数据不满足检查约束时,java项目sql抛异常:ConstrainViolationException
15、查询显示列出(或输出到文件 最后指定输出文件即可> /home/test/test1.log )DB2数据库表的所有索引和约束;
db2look -d tsasdb -z tsas -t “PUB_OPERINTO” -a -e -c > /home/test/test1.log
`db2inst1@Tsas:~> db2look -d tsasdb -z tsas -t “PUB_OPERINTO” -a -e -c
– This CLP file was created using DB2LOOK Version “10.1”
– Timestamp: Mon 23 Apr 2018 04:40:41 PM CST
– Database Name: TSASDB
– Database Manager Version: DB2/LINUXX8664 Version 10.1.1
– Database Codepage: 1386
– Database Collating Sequence is: UNIQUECONNECT TO TSASDB;
–DDL Statements for table “TSAS “.”PUB_OPERINTO”
CREATE TABLE “TSAS “.”PUB_OPERINTO” (
“OPERTYPE” VARCHAR(4) NOT NULL ,
“OPERNAME” VARCHAR(32) ,
“OPERTIME” VARCHAR(10) NOT NULL ,
“ISINTO” CHAR(1) ,
“DATACOUNT” VARCHAR(12) )
IN “USERSPACE1” ;–DDL Statements for primary key on Table “TSAS “.”PUB_OPERINTO”
ALTER TABLE “TSAS “.”PUB_OPERINTO”
ADD CONSTRAINT “SQL180423162654800” CHECK
(OPERTIME like’2%’)
ENFORCED
ENABLE QUERY OPTIMIZATION;–DDL Statements for check constraints on Table “TSAS “.”PUB_OPERINTO”
ALTER TABLE “TSAS “.”PUB_OPERINTO”
ADD CONSTRAINT “SQL180423163315500” CHECK
(OPERTIME like’2%’)
ENFORCED
ENABLE QUERY OPTIMIZATION;COMMIT WORK;
CONNECT RESET;
TERMINATE;
- 删除检查约束
tsas@Tsas:~> db2 “ALTER TABLE PUB_OPERINTO DROP CHECK SQL180423162654800”
tsas@Tsas:~> db2 “ALTER TABLE PUB_OPERINTO DROP CHECK SQL180423163315500”
`
16、catalog server 端的 node ,命令如下:
db2 catalog tcpip node node_name remote hostname server service_port
db2 uncatalog node node_name (取消节点的编目)
其中 node_name 是由你任意起的一个结点名,结点名不能跟已有的结点名重复(可通过db2 list node directory 查看),hostname也可为IP address,service_port为端口号一般默认为50000。节点目录用于存储远程数据库的所有连通性信息。
17、catalog 远端 DB2 数据库,命令如下:
db2 catalog db db_name [as alias_name] at node node_name
db2 uncatalog db db_name (取消数据库的编目)
db_name 是指远程数据库的名字, alias_name 是客户端实例名(可以忽略), db2node 是指上面你所指定的节点node !
18、连接数据库,命令如下:
db2 connect to db_name user user_name using password
db_name 是指数据库的名字, user_name 是数据库用户名,password是数据库密码
19、用db2look命令生成表结构的DLL脚本
db2look -d db_name -i user_name -w password -a -e -o d:\script.sql
db_name 是指数据库的名字, user_name 是数据库用户名,password是数据库密码
20、用db2move导出所有表的数据
db2move db_name export -u user_name -p password
db_name 是指数据库的名字,user_name 是数据库用户名,password是数据库密码
21、用export导出指定的表数据
db2 “export to d:\data\tab1.ixf of ixf lobs to d:\data\ lobfile lobs modified by lobsinsepfiles messages d:\data\tab1.msgselect * from schema_name.table_name”
或
db2 “export to /home/test/table_name.txt of del select * from schema_name.table_name”
schema_name 是表所属,table_name是表名, lobsinsepfiles 或 lobsinfile 是生成lob文件 前一个是生成每个,后面是生成到一个文件中
22、用db2move导入所有表的数据
db2move db_name import -io replace -u user_name -p password
23、用import导入指定的表数据
db2 “import from d:\data\tab1.ixf of ixf messages d:\data\tab1.msg insert into schema_name.table_name”
或
db2 “import from /home/test/table_name.txt of del insert into schema_name.table_name”
或者指定条数分批插入
db2 “import from /home/test/table_name.txt of del commitcount 500 insert into schema_name.table_name”
24、–DB2数据库伪表(类似于ORACLE的dual)
select VARCHAR_FORMAT(current TIMESTAMP,’YYYY-MM-DD HH24:MI:SS’) from sysibm.sysdummy1;
select 1+2 from sysibm.sysdummy1
25、查看数据库实例(授权用户执行即可)
db2ilist
26、创建数据库的同时指定字符编码(db2 =>下执行)
db2 => create database topsdb using codeset GBK territory zh_cn
27、查看数据库所有配置详细信息
db2 =>get db cfg for tsasdb
或
授权用户下 db2 get db cfg for tsasdb
28、删除临时表空间
drop tablespace userspace1
29、删除数据库
db2 drop db testdb
30、修改数据库字段的长度
ALTER table CPAY_CENTPAYBILL(表名) alter ADDWORD(字段名) set data type VARCHAR(200);
如有不当或不全之处,欢迎指出和补充;感谢您的阅看,希望对您有所助益!