DBOnline

カラムの追加と削除

広告

作成済みのテーブルにカラムを追加する方法を確認します。書式は次の通りです。

ALTER TABLE tbl_name ADD [COLUMN] column_definition;

追加するカラム定義をcolumn_definitionとして指定します。

デフォルトでは追加したカラムは既存のテーブルの最後に追加されます。カラムの先頭に表示する場合は次のように「FIRST」を指定して下さい。

ALTER TABLE tbl_name ADD [COLUMN] column_definition FIRST;

また指定したカラムの後に挿入する場合は次のように「AFTER」の後にカラム名を指定して下さい。

ALTER TABLE tbl_name ADD [COLUMN] column_definition AFTER col_name;

例えば次のように使います。

alter table personal add address varchar(20);

上記の場合、personalテーブルにあるaddressカラムを追加します。位置を指定していませんので、既存テーブルの最後に追加されます。

サンプル

では実際に試してみます。次のようにテーブルを作成します。

mysql> create table goods(id int, name varchar(10));

p20-1

データをいくつか追加しておいて下さい。

p20-2

ではカラムを追加します。

mysql> alter table goods add price int;

p20-3

位置を指定していないため最後の位置にカラムが追加されます。カラムの情報を取得して確認してみます。

p20-4

またテーブルに追加されているデータには新しく追加したカラムに関する値が存在していませんので、デフォルトの値が格納されます。

p20-5

既存のデータの「price」カラムにはデフォルトの値であるNULLが格納されていることが確認できます。

*** ***

もう一つカラムを追加します。今度は追加する位置を「name」カラムの後に指定します。

mysql> alter table goods add stock int not null default 10 after name;

p20-6

カラムの情報を取得して確認してみます。

p20-7

新しく追加した「stock」カラムが指定した位置である「name」カラムの後に追加されています。またカラム定義で指定したNOT NULLとDEFAULTも反映されています。

今回追加したカラムにはデフォルト値を明示的に指定しましたので、テーブルに含まれている既存のデータの「stock」カラムの値は、指定したデフォルト値が書格納されます。

p20-8

既存のデータの「stock」カラムにはデフォルトの値である10が格納されていることが確認できます。

カラムを削除する

作成済みのテーブルから指定のカラムを削除する方法を確認します。書式は次の通りです。

ALTER TABLE tbl_name DROP [COLUMN] col_name;

削除するカラムの名前をcol_nameとして指定します。

では実際に試してみます。先ほど使用したテーブルの「stock」カラムを削除します。

mysql> alter table goods drop column stock;

p20-9

カラムの情報を取得して確認してみます。

p20-10

「stock」カラムが削除されていることが確認できました。

( Written by Tatsuo Ikura )