テーブル名の変更とカラムの追加

作成済みのテーブル名を変更するには ALTER TABLE 文を使います。ここでは SQLite で作成済みのテーブルの名前を変更する方法、およびカラムを追加する方法について解説します。

(Last modified: )

テーブル名を変更する

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

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

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

alter table table_old rename to table_new;

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

テーブル名を変更する(1)

personal2 テーブルの名前を myfriend に変更してみます。

alter table personal2 rename to myfriend;

テーブル名を変更する(2)

テーブル名が変更されました。

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

テーブル名を変更する(3)

カラムを追加する

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

ALTER TABLE テーブル名 ADD COLUMN カラム名[ データ型];

※ 現在のバージョンではカラムの追加はできても削除はできないようです。

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

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

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

alter table mytable add column new_column;

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

.schema myfriend

カラムを追加する(1)

次のように表示されました。

sqlite> .schema myfriend
CREATE TABLE IF NOT EXISTS "myfriend"(id integer, name text);
sqlite>

myfriend テーブルに address カラムを追加します。

alter table myfriend add column address text;

カラムを追加する(2)

改めて .schema コマンドを実行してみます。

.schema myfriend

カラムを追加する(3)

次のように表示されました。

sqlite> .schema myfriend
CREATE TABLE IF NOT EXISTS "myfriend"(id integer, name text, address text);
sqlite>

myfriend テーブルに address カラムが追加されていることが確認できました。

----

SQLite で作成済みのテーブルの名前を変更する方法、およびカラムを追加する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。