【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