DB2數據庫建表及插數據
一、建表
CREATE TABLE DB2表名(
T_ID bigint primary key not null,
T_DECIMAL decimal(10,5),
T_CHAR char(20),
T_VARCHAR varchar(20),
T_GRAPHIC graphic(20),
T_VARGRAPHIC vargraphic(20),
T_DATE date,
T_TIMESTAMP timestamp,
T_TIME time,
T_DOUBLE double,
T_BLOB blob(10485760),
T_CLOB clob(10485760)
);
二、插入數據
--/
CREATE PROCEDURE INSERT_DB2表名()
BEGIN
DECLARE MyCounter integer;
SET MyCounter =1;
WHILE MyCounter <=10 do
INSERT INTO DB2表名 VALUES(
MyCounter,MyCounter+0.99999,
DIGITS(MyCounter),DIGITS(MyCounter),
GRAPHIC(DIGITS(MyCounter)),VARGRAPHIC(DIGITS(MyCounter)),
CHAR(current date + MyCounter days ),
CHAR(current timestamp + MyCounter days),
CHAR(current time + MyCounter seconds),
123.456789,
BLOB('您好啊!'),CLOB('歲月靜好鵝鵝鵝')
);
SET MyCounter = MyCounter +1;
END WHILE;
COMMIT;
END
/
CALL INSERT_DB2表名;
DROP PROCEDURE INSERT_DB2表名;
三、字段類型
字段類型 | 定義 | 唯一值 | 非唯一值
------整數------------------
bigint | bigint |MyCounter| 111
--------字符---------------------------
char | char(20) |DIGITS(MyCounter) | 'nihao'
varchar | varchar(20) |DIGITS(MyCounter)| 'zhongguo'
graphic| graphic(20) |GRAPHIC(DIGITS(MyCounter))|graphic( 'nihao')
vargraphic| vargraphic(20) |VARGRAPHIC(DIGITS(MyCounter)) |vargraphic( 'zhongguo')
-------------------------------------------
decimal | decimal(10,5) |MyCounter+0.99999 | 12.99999
----------------------------------------------------
double | double | - | 123.456789
-------大字段類-------------------------------
blob | blob(10485760) | - |BLOB('您好啊!')/BLOB('1626c6f6231626c6f6231231626c6f6231626c26c6')
clob | clob(10485760)| - |CLOB('歲月靜好鵝鵝鵝')/CLOB('16226c6f6231626c6f6231626c6f6231626c6f6626c6f6231626c6')
---------時間類-------------------
date | date |CHAR(current date + MyCounter days )| '2018-01-08' /current date/sysdate
timestamp | timestamp |CHAR(current timestamp + MyCounter days)| '2018-01-08 01:01:01'/'2018-01-08-01.01.01'/current timestamp/sysdate
time | time |CHAR(current time + MyCounter seconds)| '05:06:08'/'05.06.08'/current time/sysdate
注:MyCounter爲自定義循環變量,以便重複插值; - 表示省略; / 表示有多種可選值
選一個舉例說明:decimal | decimal(10,5) | MyCounter+0.99999 | 12.99999
建表時decimal 字段類型可定義爲decimal(10,5); 如果該字段爲主鍵,循環插數據時使用MyCounter+0.99999 賦值;該字段不爲主鍵,循環插數據時使用12.99999賦值。
四、指定主鍵字段
建表時指定主鍵字段的三種方法:
第一種:
CREATE TABLE DB2表名(
T_ID bigint primary key not null,
T_DATE date);
第二種:
CREATE TABLE DB2表名(
T_ID bigint not null,
T_DATE date,
CONSTRAINT PK_DB2表名 PRIMARY KEY (T_ID)
);
第三種:
CREATE TABLE DB2表名(
T_ID bigint not null,
T_DATE date);
ALTER TABLE DB2表名 ADD CONSTRAINT PK_DB2表名 PRIMARY KEY (T_ID);
ALTER TABLE DB2表名 activate not logged initially;
注:PK_DB2表名爲約束名
創建聯合主鍵時,在第2和第3種方法中的括號裏直接加入需要增加的字段,用逗號隔開。
如:
CONSTRAINT PK_DB2表名 PRIMARY KEY (T_ID,T_DATE)
ALTER TABLE DB2表名 ADD CONSTRAINT PK_DB2表名 PRIMARY KEY (T_ID,T_DATE);
五、其它
db2,建表時,字段類型的值只能定義爲not null,不能定義爲null。字段類型的值未定義爲not null,系統就會默認其爲null。
六、操作軟件
DbVisualizer