【ORACLE】テーブルの列(カラム)を追加・変更・削除するSQL


ここではORACLEデータベースで、テーブルの列(カラム)を追加・変更・削除するSQLを紹介しています。

列名の一覧や指定したカラム名を持つ表を確認する方法は↓で紹介しています。
>>【ORACLE】テーブルの列名の一覧を取得するSQL
>>【ORACLE】指定したカラム名・列をもつテーブルの一覧を取得するSQL

テーブルの列(カラム)を追加するSQL

列はALTER TABLE文を使って追加することが出来ます。

列の追加の基本構文は次の通りです。

ALTER TABLE テーブル名 ADD ( 列名 データ型 [,列名 データ型...] );

次のALTER文では、TAB1テーブルにNUMBER型のCOL4列を追加しました。

ALTER TABLE tab1 ADD ( col4 NUMBER );

次のALTER文では、TAB1テーブルにNUMBER型のCOL4列、VARCHAR2型のCOL5列を追加しました。

ALTER TABLE tab1 ADD ( col4 NUMBER,col5 varchar2(30) );

テーブルの列(カラム)を変更するSQL

列はALTER TABLE文を使って変更することが出来ます。

列名(カラム名)を変更するSQL

次のSQLでは、TAB1テーブルのCOL1列をCOL100という名前に変更しています。

ALTER TABLE tab1 RENAME COLUMN col1 TO col100;

列(カラム)の属性や桁数を変更するSQL

次のSQLでは、COL1列のデータ型をVARCHAR2型の100桁に変更しています。

ALTER TABLE tab1 MODIFY (col1 VARCHAR2(100));

ALTER TABLE文を使うことで列の桁数の他、データ型やデフォルト値も変更できます。

テーブルの列(カラム)を削除するSQL

列はALTER TABLE文を使って削除することが出来ます。

列の追加の基本構文は次の通りです。

ALTER TABLE テーブル名 DROP ( 列名 データ型 [,列名 データ型...] )
[CASCADE CONSTRAINTS];

次のSQLではTAB1テーブルからCOL4列を削除しました。

ALTER TABLE tab1 DROP ("COL4");

次のSQLではTAB1テーブルからCOL4列とCOL5列を同時に削除しました。

ALTER TABLE tab1 DROP ("COL4","COL5");

削除するカラムが外部参照キーとして参照されている場合、「CASCADE CONSTRAINTS」を指定することで外部参照キーを同時に削除することが出来ます。

ALTER TABLE tab1 DROP ("COL4")
CASCADE CONSTRAINTS;

まとめ

テーブルの列の追加や変更、削除はALTER文で行うことが出来ます。

それぞれ指定できるパラメータが違うので注意が必要です。

テーブルのにはALTER ANY TABLE権限が必要です。システム権限の付与の方法については↓で紹介していますので参考にしてください。
>>【ORACLE】システム権限を付与・取消するSQL