DB2修改表操作相信大家都不陌生,下文對DB2修改表方面結合了一些例子進行了詳細的分析討論,供您參考學習。
DB2修改表
使用ALTER TABLE語句來更改列屬性,例如可空性、LOB選項、作用域、約束、壓縮屬性以及數據類型等等。
例如,在命令行中輸入:
ALTER TABLE EMPLOYEE ALTER COLUMN WORKDEPT SET DEFAULT '123'
在DB2 V9 for Linux、UNIX and Windows上,已經對ALTER TABLE語句作了改進,現在它可以用來執行以下操作:
● 使用新的DROP COLUMN子句刪除列
● 使用ALTER COLUMN SET DATA TYPE子句修改列屬性
● 使用SET NOT NULL或DROP NOT NULL子句修改列的可空屬性
在使用SQL修改這些表屬性時,不再需要刪除表 並重新創建它。這原來是一個很耗費時間的過程,而且在存在對象依賴時可能會很復雜。除了上述新增加的特性外,還可以使用DB2 V9版本以前的修改表語句:
● 增加列。增加的新列是表中的最後一列;也就是說,如果最初有n列,那麼添加的列將是第n+1列。添加新列不能使所有列的總字節數超過最大記錄大小。
● 修改與列關聯的默認值。在定義了新默認值後,將對任何後續SQL操作中指示使用此默認值的列使用新值。新值必須遵守賦值規則,且受到與CREATE TABLE語句下記錄的限制相同的限制。
下面我們舉幾個使用ALTER TABLE語句來修改表的例子:
例1 將Managing_Bank列添加到ACCOUNT表中:
ALTER TABLE V9R0M0.ACCOUNT ADD COLUMN Managing_Bank VARCHAR(15)
注意:
這個特性在DB2 Universal Database Version 8中就已經可用了。
例2 刪除TRANSACTION表中的Instruction_ID列:
ALTER TABLE V9R0M0.TRANSACTION DROP COLUMN Instruction_ID
例3 將ACCOUNT和TRANSACTION表中的Account_ID列的數據類型從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列的大小:
ALTER TABLE dev.TRANSACTION ALTER COLUMN Description SET DATA TYPE VARCHAR(60)
注意:
這個特性在DB2 Universal Database Version 8中就已經可用了。
例6 修改t1表中的colnam1列的默認值:
ALTER TABLE t1 ALTER COLUMN colnam1 SET DEFAULT '123'
注意:
這個特性在DB2 V8中就已經可用了。