本文詳細記錄在 Windows XP 平台上,從環境準備到建立資料庫、驗證測試的完整操作流程,採用 DB2 Express-C 9.5 版本為例,適合初學者與需快速部署測試環境的開發人員參考。
D:\DB2 (副本名 DB2COPY1)可透過 db2level 與 db2licm -l 指令驗證上述資訊。
mkdir D:\db2study
db2set DB2_CREATE_DB_ON_PATH=YES
說明:預設 DB2 僅允許在實例目錄下建立資料庫。設定此登錄變數後,CREATE DATABASE 指令才能接受 ON '路徑' 子句指定儲存位置。
C:\> db2
db2 => db2start
DB20000I DB2START 命令成功完成。
以下指令建立名為 STUDY 的資料庫,採用 GBK 編碼、中文地區設定、8KB 頁面大小,並自訂目錄、使用者、暫存表空間容器:
db2 => CREATE DATABASE study
AUTOMATIC STORAGE NO
ON 'D:\db2study'
ALIAS study
USING CODESET GBK TERRITORY CN
COLLATE USING SYSTEM
PAGESIZE 8192
CATALOG TABLESPACE MANAGED BY DATABASE
USING (FILE 'D:\DB2\study\catalog.dbf' 25600)
USER TABLESPACE MANAGED BY DATABASE
USING (FILE 'D:\DB2\study\study.dbf' 5120)
TEMPORARY TABLESPACE MANAGED BY DATABASE
USING (FILE 'D:\DB2\study\temp.dbf' 5120)
WITH 'STUDY'
關鍵參數說明:
AUTOMATIC STORAGE NO:關閉自動儲存,改用手動指定容器(DMS 表空間)。CATALOG TABLESPACE ... 25600:目錄表空間建議給予較大初始空間(此例約 200MB),過小易導致 SQL1043C(系統目錄初始化失敗,錯誤 -289)。db2 => CONNECT TO study
資料庫伺服器 = DB2/NT 9.5.0
SQL 授權 ID = ZHANGRP
本地資料庫別名 = STUDY
db2 => CREATE TABLE test (id INTEGER, name VARCHAR(20))
DB20000I SQL 命令成功完成。
db2 => DESCRIBE SELECT * FROM zhangrp.test
列資訊
SQL類型 類型長度 欄位名 名稱長度
497 4 ID 2
449 20 NAME 4
db2 => INSERT INTO test VALUES (1, 'abc')
db2 => SELECT * FROM test
ID NAME
1 abc
db2 => UPDATE test SET id=100, name='def' WHERE id=1
db2 => SELECT * FROM test
ID NAME
100 def
db2 => DELETE FROM test
db2 => SELECT * FROM test
0 個記錄已選擇。
db2 => DROP TABLE test
db2 => CONNECT RESET
db2 => DROP DATABASE study
DB20000I DROP DATABASE 命令成功完成。
常見錯誤與對策:
CATALOG TABLESPACE 容器大小(建議 ≥ 100MB)重建即可。D:\db2study 有完整讀寫權限。GBK 或 UTF-8,避免亂碼。