首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

DB2 開發常用 SQL 與命令速查手冊:建庫、建表、權限、工具一覽

     編輯:DB2 教學

數據庫與連接

-- 創建支持中文的數據庫
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;
CONNECT RESET;
DISCONNECT DB2_GCB;

別名與視圖

CREATE ALIAS db2admin.tables  FOR syscat.tables;
CREATE ALIAS db2admin.views   FOR syscat.views;
CREATE ALIAS db2admin.columns FOR syscat.columns;

CREATE VIEW v_zjt_tables AS SELECT tabschema, tabname FROM zjt_tables;

表操作與數據加載

-- 結構複製
CREATE TABLE zjt_tables AS (SELECT * FROM tables) DEFINITION ONLY;
CREATE TABLE zjt_views  AS (SELECT * FROM views)  DEFINITION ONLY;

-- 數據複製
INSERT INTO zjt_tables SELECT * FROM tables;
INSERT INTO zjt_views  SELECT * FROM views;

-- 觸發器示例
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);

常用系統查詢

目的SQL / 命令
查看表結構db2 describe table user1.department / db2 describe select * from user.tables
查看索引db2 describe indexes for table user1.department
列出所有用戶表LIST TABLES
列出系統表LIST TABLES FOR SYSTEM
查看活動數據庫LIST ACTIVE DATABASES
查看表空間/容器LIST TABLESPACES / LIST TABLESPACE CONTAINERS FOR 1
查看授權GET AUTHORIZATIONS
查看應用/強制斷開LIST APPLICATION / FORCE APPLICATION(0) / db2 force applications all
鎖表LOCK TABLE test IN EXCLUSIVE MODE / SHARE MODE

權限授予模板

-- 表/視圖
GRANT SELECT,DELETE,INSERT,UPDATE ON tables TO user;
GRANT ALL ON tables TO user WITH GRANT OPTION;

-- 套件
GRANT EXECUTE ON PACKAGE pkg_name TO PUBLIC;

-- 模式
GRANT CREATEIN ON SCHEMA schema_name TO user;

-- 數據庫級
GRANT CONNECT,CREATETAB,DBADM ON DATABASE TO user;

-- 索引
GRANT CONTROL ON INDEX idx_name TO user;

實用工具命令

  • db2sampl [drive:] 創建樣本庫
  • ! dir 在 CLP 執行 OS 命令
  • ? SQL30081 查錯誤碼說明
  • HELP SELECT 語法幫助
  • ? 20000 SQLSTATE 幫助
  • db2admin setid user pwd 修改 DAS 口令
  • db2 update dbm cfg using JDK11_PATH d:\sqllib\java\jdk 配置 Java SP/UDF 路徑
  • db2 bind @db2ubind.lst / @db2cli.lst 升級後重綁系統包

數據類型速查

類型長度/精度示例/範圍
CHAR(15)定長 254'Sunny day '
VARCHAR(15)變長 4000'Sunny day'
SMALLINT2 字節-32768 ~ 32767
INTEGER4 字節-2.147G ~ 2.147G
REAL單精度 32-bit±1.175E-37 ~ ±3.402E+38
DOUBLE雙精度 64-bit±2.225E-307 ~ ±1.797E+308
DECIMAL(5,2)精度5 模2-999.99 ~ 999.99
DATE/TIME/TIMESTAMP3/3/7 部分1991-10-27 / 13.30.05 / 1991-10-27-13.30.05.000000
BLOB/CLOB/DBCLOB大對象二進制/字符/雙字節字符

範式回顧

  1. 1NF:每列不可再分,無重複組。
  2. 2NF:非鍵列完全依賴主鍵(無部分依賴)。
  3. 3NF:非鍵列不傳遞依賴主鍵(無傳遞依賴)。
  4. 4NF:無多值依賴(一行不存兩個獨立多值事實)。

系統目錄視圖速查

SYSCAT.CHECKS        -- 檢查約束
SYSCAT.COLUMNS       -- 列定義
SYSCAT.KEYCOLUSE     -- 鍵列使用
SYSCAT.DATATYPES     -- 數據類型
SYSCAT.FUNCPARMS     -- 函數參數
SYSCAT.REFERENCES    -- 參考約束
SYSCAT.SCHEMATA      -- 模式
SYSCAT.TABCONST      -- 表約束
SYSCAT.TABLES        -- 表/視圖
SYSCAT.TRIGGERS      -- 觸發器
SYSCAT.FUNCTIONS     -- UDF
SYSCAT.VIEWS         -- 視圖
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved