LoginSignup
0
1

More than 3 years have passed since last update.

【SQLite3】テーブルの操作

Last updated at Posted at 2019-10-28

テーブル作成


CREATE TABLE personal001(id, name);

この構文をCREATE文といいますが、これでテーブルを作成できます。


データベース内に作成されたテーブルを確認する

.tables

データベースに格納されたテーブルの名前を確認したいときは、このSQLiteコマンドを使うと確認することができます。

.tables
実行結果
personal001  personal002

.schema

SQLiteコマンドの.schemaを使うと、データベースに格納されたテーブルの構造を確認することができます。

.schema
:実行結果
CREATE TABLE personal001(id, name);
CREATE TABLE personal002(id INTEGER PRIMARY KEY, name TEXT NOT NULL);

テーブル名の変更

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

テーブルの名前を変更するには、上記のように行います。

テーブル名を"personal002"から"myfriends"に変更
ALTER TABLE personal002 RENAME TO myfriends;

実際にテーブル名が変更されたかを.tablesコマンドで確認してみます。

.tablesコマンドの実行結果
.tables
myfriends    personal001

カラムの追加

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

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

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

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

現在のテーブルを確認してみます。

.schema
CREATE TABLE personal001(id, name);
CREATE TABLE myfriends(id INTEGER PRIMARY KEY, name TEXT NOT NULL);

テーブル"myfriends"に新しいカラム"address"を追加してみます。

ALTER TABLE myfriends ADD COLUMN address text;

.schemaで確認すると、カラムが追加されたことがわかります。

.schema
CREATE TABLE personal001(id, name);
CREATE TABLE myfriends(id INTEGER PRIMARY KEY, name TEXT NOT NULL, address text);

カラムの削除

SQLite3では、カラムの削除のコマンドがないようです。
なので、カラムを削除したいときは以下の手順を行う必要があります。

  1. 元テーブル(削除対象のカラムが入っているもの)を用意する。
  2. 元テーブルのコピーを削除対象のカラムを除いて作成する。(必然的にテーブル名が元テーブルとは違ったものになる。)
  3. 元テーブルを削除する。
  4. コピーしたテーブルの名前を元テーブルのものにする。

テーブルの削除

テーブルを削除するには、DROP TABLE文を使います。
まず、.tableコマンドで現在作成済みのテーブルを確認します。

.tables
myfriends    personal001

テーブル"myfriends"を削除します。

DROP TABLE myfriends;

.tablesコマンドで、格納されているテーブルを確認します。

.tables
personal001

本記事目次ページ

【データベース】SQLite3・JDBCまとめ

参考サイト

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1