深度分析DB2修改表
DB2修改表操作相信大家都不陌生,下文對(duì)DB2修改表方面結(jié)合了一些例子進(jìn)行了詳細(xì)的分析討論,供您參考學(xué)習(xí)。
DB2修改表
使用ALTER TABLE語句來更改列屬性,例如可空性、LOB選項(xiàng)、作用域、約束、壓縮屬性以及數(shù)據(jù)類型等等。
例如,在命令行中輸入:
ALTER TABLE EMPLOYEE ALTER COLUMN WORKDEPT SET DEFAULT '123'
在DB2 V9 for Linux、UNIX and Windows上,已經(jīng)對(duì)ALTER TABLE語句作了改進(jìn),現(xiàn)在它可以用來執(zhí)行以下操作:
● 使用新的DROP COLUMN子句刪除列
● 使用ALTER COLUMN SET DATA TYPE子句修改列屬性
● 使用SET NOT NULL或DROP NOT NULL子句修改列的可空屬性
在使用SQL修改這些表屬性時(shí),不再需要?jiǎng)h除表 并重新創(chuàng)建它。這原來是一個(gè)很耗費(fèi)時(shí)間的過程,而且在存在對(duì)象依賴時(shí)可能會(huì)很復(fù)雜。除了上述新增加的特性外,還可以使用DB2 V9版本以前的修改表語句:
● 增加列。增加的新列是表中的最后一列;也就是說,如果最初有n列,那么添加的列將是第n+1列。添加新列不能使所有列的總字節(jié)數(shù)超過最大記錄大小。
● 修改與列關(guān)聯(lián)的默認(rèn)值。在定義了新默認(rèn)值后,將對(duì)任何后續(xù)SQL操作中指示使用此默認(rèn)值的列使用新值。新值必須遵守賦值規(guī)則,且受到與CREATE TABLE語句下記錄的限制相同的限制。
下面我們舉幾個(gè)使用ALTER TABLE語句來修改表的例子:
例1 將Managing_Bank列添加到ACCOUNT表中:
ALTER TABLE V9R0M0.ACCOUNT ADD COLUMN Managing_Bank VARCHAR(15)
注意:
這個(gè)特性在DB2 Universal Database Version 8中就已經(jīng)可用了。
例2 刪除TRANSACTION表中的Instruction_ID列:
ALTER TABLE V9R0M0.TRANSACTION DROP COLUMN Instruction_ID
例3 將ACCOUNT和TRANSACTION表中的Account_ID列的數(shù)據(jù)類型從SMALLINT改為INTEGER:
ALTER TABLE dev.ACCOUNT ALTER COLUMN Account_ID SET DATA TYPE INTEGER
ALTER TABLE dev.TRANSACTION ALTER COLUMN Account_ID SET DATA TYPE INTEGER
例4 刪除ACCOUNT表中的Credit_Line列的NOT NULL屬性:
ALTER TABLE dev.ACCOUNT ALTER COLUMN Credit_Line DROP NOT NULL
例5 增加TRANSACTION表中的Description列的大?。?/p>
ALTER TABLE dev.TRANSACTION ALTER COLUMN Description SET DATA TYPE VARCHAR(60)
注意:
這個(gè)特性在DB2 Universal Database Version 8中就已經(jīng)可用了。
例6 修改t1表中的colnam1列的默認(rèn)值:
ALTER TABLE t1 ALTER COLUMN colnam1 SET DEFAULT '123'
注意:
這個(gè)特性在DB2 V8中就已經(jīng)可用了。
【編輯推薦】