一、常用 DDL/DML 指令
-- 建庫
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 password;
CREATE ALIAS db2admin.tables FOR syscat.tables;
-- 建表/視圖/觸發器/索引
CREATE TABLE zjt_tables AS (SELECT * FROM tables) DEFINITION ONLY;
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 ON zjt_tables(tabname);
二、資訊查詢指令
-- 表/欄/視圖/索引/預存程序
SELECT tabname FROM syscat.tables WHERE tabname='ZJT_TABLES';
SELECT substr(colname,1,20) as 欄名,typename as 類型,length as 長度
FROM syscat.columns WHERE tabname='ZJT_TABLES';
DESCRIBE TABLE user1.department;
DESCRIBE INDEXES FOR TABLE user1.department;
SELECT procschema,procname FROM syscat.procedures;
三、連線與應用控制
CONNECT RESET; -- 重新連線
DISCONNECT db2_gcb; -- 中斷連線
LIST APPLICATION; -- 檢視應用
FORCE APPLICATION ALL; -- 強制斷開所有
LOCK TABLE test IN EXCLUSIVE MODE; -- 排他鎖
LOCK TABLE test IN SHARE MODE; -- 共享鎖
四、目錄與權限管理
LIST TABLES; -- 當前用戶表
LIST TABLES FOR SYSTEM; -- 系統表
LIST ACTIVE DATABASES; -- 活躍資料庫
LIST DATABASE DIRECTORY; -- 系統目錄
LIST TABLESPACES; -- 表空間
LIST TABLESPACE CONTAINERS FOR 1; -- 容器
GET AUTHORIZATIONS; -- 存取權限
-- 權限授予
GRANT SELECT,INSERT,UPDATE,DELETE ON tables TO user;
GRANT ALL ON tables TO user WITH GRANT OPTION;
GRANT EXECUTE ON PACKAGE pkg TO PUBLIC;
GRANT CREATEIN ON SCHEMA sch TO user;
GRANT CONNECT,CREATETAB,DBADM ON DATABASE TO user;
GRANT CONTROL ON INDEX idx TO user;
五、工具與說明指令
? SQL30081 -- 錯誤碼說明
HELP SELECT -- SQL 語法說明
? SQLSTATE -- SQLSTATE 說明
DB2ADMIN SETID u p -- 修改管理服務器口令
DB2SAMPL [F:] -- 建立 SAMPLE 資料庫
! dir -- 執行 OS 指令
六、資料類型對照
| 類型 | 特性 | 範圍/示例 |
| CHAR(15) | 定長字串 | 最大 254 |
| VARCHAR(15) | 變長字串 | 最大 4000 |
| SMALLINT | 2 bytes | -32768~32767 |
| INTEGER | 4 bytes | -2147483648~2147483647 |
| REAL | 單精度 | ~3.4E38 |
| DOUBLE | 雙精度 | ~1.79E308 |
| DECIMAL(5,2) | 精確數值 | -10^31~10^31 |
| DATE/TIME/TIMESTAMP | 日期時間 | 7 部分值 |
七、彙總與標量函數
- 彙總:AVG、COUNT、MAX、MIN
- 標量:ABS、HEX、LENGTH、YEAR 等
八、正規化與目錄視圖
- 1NF:每欄單一值;2NF:非鍵全賴主鍵;3NF:非鍵不傳遞賴賴;4NF:無多值事實
- 常用目錄視圖:SYSCAT.TABLES、COLUMNS、INDEXES、VIEWS、TRIGGERS、FUNCTIONS、CHECKS、REFERENCES、SCHEMATA、DATATYPES、KEYCOLUSE、FUNCPARMS、PASSTHRUAUTH
九、大物件與字串類型
- BLOB:二進位大物件
- CLOB:字元大物件 (單/雙位元組混合)
- DBCLOB:雙位元組字元大物件