アットウィキロゴ

Oracle Bronze10g SQL基礎I講座(Ⅹ)

第10章 列について


10.1 列の追加

○ALTER TABLE文 ADD句

【機能】
表に列を追加

【構文】
ALTER TABLE 表名 ADD 列名 データ型 [DEFAULT デフォルト値];

【説明】
・デフォルトを指定して列を追加したい場合、既存行の追加列にはデフォルト値が設定される。
・デフォルトを指定したい場合、既存行の追加列にはNULLが設定される。



10.2 列の変更

○ALTER TABLE文 MODIFY句

【機能】
列を修正する

【構文】
ALTER TABLE 表名 MODIFY 列名 データ型 [DEFUALT デフォルト値 [NOT NULL ┃ NULL]];
ALTER TABLE 表名 MODIFY (列名 データ型[,列名 データ型..]);

【説明】
(1)列の拡大
・既存列のデータ長を拡大する変更、数値精度の拡大変更は可能。

(2)列の縮小
・列にデータがない場合(データがすべてNULLの場合)は可能。
・列にデータがある場合でも、既存列のデータに影響しない縮小変更は可能。
固定長型では、縮小することはできません。

(3)列のデータ型の変更
・データがない場合又は変更する列がすべてNULLならば、データ型の変更は可能。
・既存列にデータがある場合でも、既存データに影響しないデータ型の変更は可能。

■デフォルト値の追加又は変更
表)
処理 説明
列の追加でデフォルト値を設定 既存行には、デフォルト値が格納される
列の変更でデフォルト値を設定 既存行は、そのままで新規に追加されるデータからデフォルト値が格納される



10.3 列の未使用


○ALTER TABLE文 SET UNUSED(COLUMN)句

【機能】
列に未使用マークを設定

【構文】
ALTER TABLE 表名 SET UNUSED COLUMN 列名;
ALTER TABLE 表名 SET UNUSED (列名 [,列名...]);

【説明】
・列に未使用マークが付けられていますが、列定義自体は、表からは削除されません。
・未使用マークの列名と同じ列名を定義することができます。
・未使用列を削除するには、ALTER TABLE文のDROP句を使用します。
・表には、未使用の列数がいくつあるかは、ビューUSER_UNUSED_COL_TABSで調べることができます。



10.4 未使用マークの削除


○ALTER TABLE文 DROP UNUSED COLUMNS句

【機能】
未使用マークの付いた列をすべて削除します。

【構文】
ALTER TABLE 表名 DROP UNUSED COLUMNS;

【説明】
・未使用マークがついたすべての列を表から削除します。
・未使用マークの列が削除されて、ディスク領域にスペースができる。



10.5 列名の変更


○ALTER TABLE文 RENAME COLUMN句

【機能】
列名を変更します。

【構文】
ALTER TABLE 表名 RENAME COLUMN 旧列名 TO 新列名;

【説明】
・すでに表内で使用されている列名に変更は不可。
・列の制約は有効です。(主キー制約、一意制約、参照整合制約、CHECK制約等)



10.6 列の削除


○ALTER TABLE文 DROP (COLUMN)句

【機能】
表から列を削除します。

【構文】
ALTER TABLE 表名 DROP COLUMN 列名 [CASCADE CONSTRAINTS];
ALTER TABLE 表名 DROP (列名、列名...)[CASCADE CONSTRAINTS];

CASCADE CONSTRAINTSを指定すると、削除する列を参照する
外部キー制約やすべての複数列制約を削除することができます。

【説明】
・表から指定列を削除します。
・表の最後の列は、削除できない。
・列にデータが格納されていても削除できる。
・削除列が、参照整合制約の親キーの場合、削除できない。
・未使用マークの付いている列も削除されます。



10.7 列のデフォルト値

デフォルト値を指定して列を追加した場合
・INSERT文で、データを追加する場合、列値を指定しない列には、NULL値が格納される。
・列にデフォルト値を指定すると列に値が入力されない場合に、NULL値の代わりにデフォルト値が格納される。

既存列にデフォルト値を指定した場合
・既存行にデフォルト値を指定した場合またはデフォルト値を変更した場合、既存データには、変更なし。
・新規データの追加からデフォルト値が使用される。



10.8 列のコメント

○COMMENT ON COLUMN文

【構文】
COMMENT ON COLUMN [表名.]列名 IS 'コメント内容';

【説明】
・コメント内容は、最大は4000バイトまで。
・コメントを追加するには、自分のスキーマのオブジェクトか、COMMENT ANY TABLEシステム権限が必要です。



10.9 コメント情報

(表)コメント情報ビューの一覧
ビュー 説明 備考
ALL_COL_COMMENTS 自分がアクセスできる表又はビューの列のコメント
USER_COL_COMMENTS 自分が所有する表またはビューの列のコメント
ALL_TAB_COMMENTS 自分がアクセスできる表またはビューのコメント
USER_TAB_COMMNETS 自分が所有する表またはビューのコメント
最終更新:2008年08月06日 10:42