ここではOracleのテーブルの変更・削除について紹介します。

テーブルを変更する

ALTER TABLE 文

テーブルに列を追加するには、「ALTER TABLE ~ RENAME TO ~」を使用します。

構文

ALTER TABLE {変更前のテーブル名}
      RENAME TO {変更後のテーブル名};


以下はテーブル名「emp」を「emp_bak」に変更するALTER TABLE文です。

ALTER TABLE emp RENAME TO emp_bak;


テーブルを削除する

DROP TABLE 文

テーブルを削除するには、「DROP TABLE ~」を使用します。

構文

DROP TABLE {テーブル名};


以下はテーブル「emp」を削除するDROP TABLE文です。

DROP TABLE emp;


列を追加・変更・削除する

列を追加する

テーブルに列を追加するには、「ALTER TABLE ~ ADD (~)」を使用します。

構文

ALTER TABLE {テーブル名} ADD ({列名 型(桁), ...});


以下はテーブル「emp」に列「email」と「tel」を追加するALTER TABLE文です。

ALTER TABLE emp ADD (email VARCHAR(100), tel VARCHAR(20));


列名を変更する

テーブルに列を追加するには、「ALTER TABLE ~ RENAME COLUMN ~ TO ~」を使用します。

構文

ALTER TABLE {テーブル名}
      RENAME COLUMN {変更前の列名} TO {変更後の列名};


以下はテーブル「emp」の列「emp_email」と「emp_email」に、「tel」を「emp_tel」に変更するALTER TABLE文です。

ALTER TABLE emp RENAME COLUMN email TO emp_email;
ALTER TABLE emp RENAME COLUMN tel TO emp_tel;


列のサイズを変更する

テーブルに列のサイズを変更するには、「ALTER TABLE ~ MODIFY (~)」を使用します。

構文

ALTER TABLE {テーブル名}
      MODIFY ({列名 型(桁), ...});


以下はテーブル「emp」の列「emp_email」と「emp_tel」のサイズを変更するALTER TABLE文です。

ALTER TABLE emp MODIFY (emp_email VARCHAR(200), emp_tel VARCHAR(15));


列の初期値を変更する

テーブルに列の初期値を変更するには、「ALTER TABLE ~ MODIFY (~)」を使用します。

構文

ALTER TABLE {テーブル名}
      MODIFY ({列名 DEFAULT 初期値, ...});


以下はテーブル「emp」の列「emp_email」と「emp_tel」に初期値を変更にするALTER TABLE文です。

ALTER TABLE emp MODIFY (emp_email DEFAULT 'aaa', emp_tel DEFAULT 'bbb');


列のNOT NULL制約を設定・解除する

テーブルに列のNOT NULL制約を設定・解除するには、「ALTER TABLE ~ MODIFY (~)」を使用します。

構文

--NOT NULL制約を設定する
ALTER TABLE {テーブル名}
      MODIFY ({列名 NOT NULL, ...});

--NOT NULL制約を解除する
ALTER TABLE {テーブル名}
      MODIFY ({列名 NULL, ...});


以下はテーブル「emp」の列「emp_email」と「emp_tel」に初期値を変更にするALTER TABLE文です。

ALTER TABLE emp MODIFY (emp_email NOT NULL);  --NOT NULL制約を設定する
ALTER TABLE emp MODIFY (emp_email NULL);  --NOT NULL制約を解除する


列を削除する

テーブルの列を削除するには、「ALTER TABLE ~ DROP  (~)」を使用します。

構文

ALTER TABLE {テーブル名} DROP ({列名, ...});


以下はテーブル「emp」の列「emp_email」と「emp_tel」を削除するALTER TABLE文です。

ALTER TABLE emp DROP (emp_email, emp_tel);


以上、Oracleのテーブルの変更・削除について解説しました。