テーブル名の変更/カラムの追加/テーブルの削除

広告

作成済みのテーブルの名前を変更する方法、テーブルにカラムを追加する方法、そしてテーブルを削除する方法についてそれぞれ解説します。

1.テーブル名の変更
2.カラムの追加
3.テーブルの削除

作成済みのテーブル名を変更するにはALTER TABLE文を使います。書式は次の通りです。

ALTER TABLE テーブル名 RENAME TO 新しいテーブル名;

例えば「aaa」テーブルの名前を「bbb」に変更する場合は次のように実行します。

alter table aaa rename to bbb;

では実際に試してみます。SQLiteコマンドの「.tables」で現在存在しているテーブル名の一覧を確認すると「personal」と「personal2」が作成されていることが分かります。

p4-1

今回は「personal2」テーブルを「myfriend」テーブルに変更してみます。

alter table personal2 rename to myfriend;

p4-2

改めて「.tables」コマンドを実行してみると作成済のテーブル名として「personal」と「myfriend」になっていることが確認できます。

p4-3

一度作成したテーブルに後からカラムを追加することも可能です。カラムを追加するにはALTER TABLE文を使います。書式は次の通りです。

ALTER TABLE テーブル名 ADD COLUMN カラム名[ データ型];
現在のバージョンではカラムの追加はできても削除はできないようです。

追加したカラムはテーブルの最後に追加されます。またカラムを追加する場合は次の条件を満たしていなければなりません。

1. PRIMARY KEY や UNIQUE 制約は設定できない
2. DEFAULT 制約を設定する時は、CURRENT_TIME/CURRENT_DATE/CURRENT_TIMESTAMP
   は指定できない
3. NOT NULL 制約を設定する時は、NULL以外のデフォルト値の設定が必要

例えば「aaa」テーブルに「bbb」カラムを追加する場合は次のように実行します。

alter table aaa add column bbb;

では実際に試してみます。既存の「myfriend」テーブルに「address」カラムを追加します。データ型はTEXT型です。「.schema」コマンドを使って現在のテーブルのスキーマを確認します。

p4-4

「address」カラムを追加します。

alter table myfriend add column address text;

p4-5

改めて「.schema」コマンドを実行してみるとカラムが追加されていることが確認できます。

p4-6

作成済みのテーブルを削除するにはDROP TABLE文を使います。書式は次の通りです。

DROP TABLE テーブル名;

テーブルを削除すると、テーブルに関連付けされているインデックスとトリガーも同時に削除されます。

例えば「aaa」テーブルを削除する場合は次のように実行します。

drop table aaa;

なおテーブルの削除を行った後でデータベースから不要な空間を削除するにはVACUUM文を実行する必要があります。(VACUUM文については「空き領域の開放(VACUUM文)」を参照して下さい)。

VACUUM;

では実際に試してみます。SQLiteコマンドの「.tables」で現在存在しているテーブル名の一覧を確認すると「personal」と「myfriend」が作成されていることが分かります。

p4-7

「myfriend」テーブルを削除します。

drop table myfriend;

p4-8

改めて「.tables」コマンドを実行してみると先ほどまであった「myfriend」が削除されていることが確認できます。

p4-9

----

作成済のテーブルの名前を変更したり、テーブルにカラムを追加したり、テーブルを削除する方法について解説いたしました。

( Written by Tatsuo Ikura )