DB2數據庫建表及插數據

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 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章