db2数据库建表的时候主键怎么建_DB2数据库建表及插数据

本文详细介绍了如何在DB2数据库中创建表并插入数据,包括各种字段类型的使用,如bigint、decimal、char等。同时,文章重点讨论了主键的设置方法,包括在建表时直接指定、通过约束定义以及后期添加,并强调了字段值的非空限制。
摘要由CSDN通过智能技术生成

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 keynot 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值