數據類型:

| 字符串類型 | 描述 |
|---|---|
| CHARACTER(n) | n bytes定長字符串. n 大於0 不大於255. 默認 1. |
| VARCHAR(n) | 變長字符串,最大 n bytes. n大於 0 小於表空間的 page size. 最大32704. |
| CLOB(n) | 變長字符串,最大2 147 483 647.默認1. |
| GRAPHIC(n) | 定長圖形字符串, n 個雙字節字符. n 大於 0 小於128. 默認 1. |
| VARGRAPHIC(n) | 變長圖形字符串. 最大長度 n, 大於0小於表空間的page size. 最大16352. |
| DBCLOB(n) | 雙字節變長字符串, n不能超過 1 073 741 824.默認1. |
| BINARY(n) | 定長或變長二進制字符串. n 大於 0 不大於 255. 默認1. |
| VARBINARY(n) | 變長二進制字符串,n大於 0小於表空間的 page size. 最大 32704. |
| BLOB(n) | 變長二進制字符串,n 不大於 2 147 483 647. 默認 1. |
| 數值類型 | 描述 |
|---|---|
| SMALLINT | 小整數,精度(即通常說的長度) 15 bits. 范圍 -32768 到 +32767. |
| INTEGER or |
整數,精度 31 bits的二進制整數,范圍 -2147483648 到 +2147483647. |
| BIGINT | 大整數,精度 63 bits二進制整數,范圍 -9223372036854775808 到 +9223372036854775807. |
| DECIMAL or |
壓縮十進制數,小數點位置由precision和scale決定,scale非負且小於精度.最大精度 31 digits. decimal 列中的值有同樣的precision 和 scale.范圍 1 - 10³¹ 到 10³¹ - 1. |
| DECFLOAT | 十進制浮點數,最大精度 34 位.(早期DB2版本不支持) |
| REAL | 單精度浮點數,32 bits.范圍大約為 -7.2E+75 到 7.2E+75.最大負值約為 -5.4E-79, 最小正值約為 5.4E-079. |
| DOUBLE | 雙精度浮點數,64-bits. 范圍大約為 -7.2E+75 到 7.2E+75.最大負值約為 -5.4E-79, 最小正值約為 5.4E-079. |
| 時間日期類型 | 描述 |
|---|---|
| DATE | 年月日組成的日期,范圍 0001-01-01 到 9999-12-31. |
| TIME | 時分秒組成的時間,范圍 00.00.00 到 24.00.00. |
| TIMESTAMP | 年月日時分秒微妙組成的時間,范圍 0001-01-01-00.00.00.000000000 到 9999-12-31-24.00.00.000000000 精確到納秒. 可保存時區信息 |
Character large objects (CLOBs)存儲超過VARCHAR限制的文本。Double-byte character large objects (DBCLOBs)
Binary large objects (BLOBs)存儲圖片,音頻,視頻。
Distinct Types :用戶自定義類型,是基於DB2內置類型的別名,但DB2會將其作為不同的類型進行處理。例如:
CREATE DISTINCT TYPE US_DOLLAR AS DECIMAL (9,2);
CREATE DISTINCT TYPE CANADIAN_DOLLAR AS DECIMAL (9,2);
系統默認值:
| 類型 | 類型 | Default |
|---|---|---|
| 數值 | SMALLINT, INTEGER, BIGINT, DECIMAL, NUMERIC, REAL, DOUBLE, DECFLOAT, or FLOAT | 0 |
| 定長字符串 | CHAR or GRAPHIC BINARY |
空格 十六進制0 |
| 變長字符串 | VARCHAR, CLOB, VARGRAPHIC, DBCLOB, VARBINARY, or BLOB | 空串 |
| 日期 | DATE | 當前日期 |
| 時間 | TIME | 當前時間 |
| 時間日期 | TIMESTAMP | 當前 TIMESTAMP |
| ROWIDs | ROWID | DB2生成 |
關於ALTER COLUMN:
DB2支持ALTER TABLE ALTER COLUMN...但列屬性的更改需要分開操作:
- 1.更改類型(設置為主鍵的列不能更改類型)
- ALTER TABLE "SCHEMA"."TABLENAME" ALTER COLUMN "COL" SET DATA TYPE VARCHAR(32);
- 2.更改默認值
- ALTER TABLE "SCHEMA"."TABLENAME" ALTER COLUMN "COL" SET DEFAULT 'ABC';
- 系統默認值:
- ALTER TABLE "SCHEMA"."TABLENAME" ALTER COLUMN "COL" SET DEFAULT; --設置默認值
- ALTER TABLE "SCHEMA"."TABLENAME" ALTER COLUMN "COL" DROP DEFAULT; --刪除默認值
- 3.更改是否允許空值
- ALTER TABLE "SCHEMA"."TABLENAME" ALTER COLUMN "COL" SET NOT NULL;
- ALTER TABLE "SCHEMA"."TABLENAME" ALTER COLUMN "COL" DROP NOT NULL;
- 更改列類型,是否允許空值后,需要執行REORG TABLE "TABLENAME";
- 更改默認值后,通常需要執行UPDATE "SCHEMA"."TABLENAME" SET "COL" = DEFAULT WHERE "COL" IS NULL;
