はじめに
SQLite は、軽量のリレーショナルデータベース管理システム(RDBMS)で、セットアップや管理が簡単です。
単一のファイルにデータベースを保存するため、特にモバイルアプリケーションや小規模な Web サイトで広く使用されています。
本記事では、SQLite の基本的な使い方について説明します。
SQL の基本用語は以下の記事で解説しています。
SQLiteのインストール
SQLiteは多くのプラットフォームに対応しています。Windows、macOS の各OSでのインストール方法を紹介します。
Windows
- SQLiteの公式サイトから、Windows向けのプリコンパイルバイナリをダウンロードします。
- ZIPファイルを解凍し、
sqlite3.exe
を適当なディレクトリに配置します。 - コマンドプロンプトを開き、以下のコマンドでインストールを確認します。
$ sqlite3 --version
macOS
macOS にははじめからインストールされています。
- ターミナルを開き、以下のコマンドでインストールを確認します。
$ sqlite3 --version
インタラクティブシェルの起動
SQLite のインタラクティブシェルは、データベースを操作するためのコマンドラインツールです。このツールは、ターミナルやコマンドプロンプトから起動して使用します。
インタラクティブシェル内では、以下のことを実行することができます。
-
SQL コマンドの実行
SQL コマンド(例えば、SELECT
やDELETE
など)を直接入力してデータベースの操作を行います。 -
ドットコマンドの利用
SQL コマンド以外にも.
で始まる特別なコマンドを使用できます。
sqlite3
というコマンドを入力して SQLite のインタラクティブシェルを起動します。
$ sqlite3
sqlite>
インタラクティブシェルの終了
.quit
コマンドで SQLite のインタラクティブシェルを終了することができます。
# SQLite を終了する
sqlite> .quit
ヘルプの表示
sqlite3 -h
コマンド
sqlite3 -h
コマンドは sqlite3
コマンドの基本的な使用方法やオプションに関する情報が表示されます。
$ sqlite3 -h
Usage: sqlite3 [OPTIONS] FILENAME [SQL]
FILENAME is the name of an SQLite database. A new database is created
if the file does not previously exist.
...
.help
コマンド
.help
コマンドは SQLite のインタラクティブシェルの起動後に使用します。このコマンドを実行すると、Sシェルで利用可能なドットコマンドのリストが表示されます。
sqlite> .help
.auth ON|OFF Show authorizer callbacks
.backup ?DB? FILE Backup DB (default "main") to FILE
.bail on|off Stop after hitting an error. Default OFF
...
データベースの作成
データベースの作成方法は、使用する RDBMS の種類によって異なります。
SQLite はファイルベースのデータベース管理システム(DBMS)であり、データベースの作成は非常に簡単です。
SQLite のシェルを起動後、.open
コマンドで新しいデータベースを作成し、接続できます。<ファイル名>
のデータベースファイルが既に存在する場合は、データベースへの接続のみを実行します。
# ファイル名の拡張子に制約はありません。
sqlite> .open <ファイル名> # .open database.db
SQLite シェルの起動とデータベースの作成を同時に行うこともできます。
$ sqlite3 <ファイル名>
このコマンドを実行すると、 任意の名前(例えば、database.db
)の新しいデータベースファイルが作成した上で作成したデータベースに接続されます。
<ファイル名>
のデータベースファイルが既に存在する場合は、データベースへの接続のみを実行します。
$ sqlite3 database.db
SQLite version 3.39.5 2022-10-14 20:58:05
Enter ".help" for usage hints.
データベースが作成されているか確認にします。
# データベースが作成されているか確認
sqlite> .databases
.quit
コマンドで SQLite のインタラクティブシェルを終了してもデータベースは残ったままです。ls
コマンドを実行すると作成したデータベースファイルを確認できます。
$ ls
database.db
データベースへの接続
$ sqlite3 <ファイル名>
上記でも説明しましたが、このコマンドを実行すると、<ファイル名>
のデータベースファイルが既に存在する場合は、データベースへの接続を実行します。
存在しない場合は、任意の名前(例えば、database.db)の新しいデータベースファイルが作成した上で作成したデータベースに接続されます。
$ sqlite3 database.db
SQLite version 3.39.5 2022-10-14 20:58:05
Enter ".help" for usage hints.
データベースの削除
SQLite では、データベースは単一のファイルとして保存されます。そのため、データベースを削除するにはファイルを削除する方法が一般的です。
テーブルの作成
SQLite のシェルを起動後、CREATE
文で簡単にデータベースを作成できます。
CREATE TABLE users (
id INTEGER PRIMARY KEY,
name TEXT,
age INTEGER
);
テーブルの基本的な操作
SQLite でも他の RDBMS と同じように SQL を実行できます。
データの挿入
INSERT
文でテーブルにデータを挿入します。
INSERT INTO users (name, age) VALUES ('Alice', 30);
INSERT INTO users (name, age) VALUES ('Bob', 25);
データの取得
挿入したデータを取得するには、SELECT
文を使用します。
SELECT * FROM users;
データの更新
データを更新するには、UPDATE
文を使用します。
UPDATE users SET age = 31 WHERE name = 'Alice';
データの削除
データを削除するには、DELETE
文を使用します。
DELETE FROM users WHERE name = 'Bob';
テーブルの削除
SQLite でテーブルを削除するには、DROP TABLE
文を使用します。
以下は、users
というテーブルを削除する例です。
DROP TABLE IF EXISTS users;
-
DROP TABLE
: 指定したテーブルを削除します。 -
IF EXISTS
: テーブルが存在する場合にのみ削除します。存在しない場合はエラーにならずに処理を終了します。