アプリ開発やデータ分析で「簡単に使えるデータベースが欲しい」と思ったことはありませんか?
そんなときにぴったりなのが、**SQLite(エスキューライト)**です。
SQLiteの特徴
- 軽量:たった1つのファイルでデータベースが完結
- 高速:小さなデータなら非常に速い
- 簡単:サーバーを立てる必要がない
- 無料:商用利用も含めて完全無料
しかも、macOSには最初からSQLiteが入っているので、すぐに使い始めることができます。
この記事では、SQLiteの確認方法から使い方まで、初心者にもわかりやすく説明します。
Macにすでに入っているか確認する

ターミナルを開く
手順
- Launchpadを開く
- 「その他」フォルダをクリック
- 「ターミナル」をクリック
または、Cmd + Space
でSpotlight検索を開いて「ターミナル」と入力してもOKです。
SQLiteのバージョンを確認
説明 ターミナルで以下のコマンドを入力して、SQLiteが入っているか確認します。
コマンド
sqlite3 --version
実行結果(例)
3.43.2 2023-10-10 13:08:14 1b37ebeacb580cf4df40d4ac830b67a510dfc75e58b40c851d06b3ad57a3c2d5
このようにバージョン情報が表示されれば、SQLiteはすでにインストール済みです。
エラーが出た場合
command not found: sqlite3
このメッセージが出た場合は、SQLiteがインストールされていないので、次の章でインストール方法を説明します。
SQLiteをインストールする方法
Homebrewを使ったインストール(推奨)
説明 Homebrewは、Macでソフトウェアを簡単にインストールできるパッケージマネージャーです。
ステップ1:Homebrewをインストール
Homebrewが入っているか確認
brew --version
バージョンが表示されればHomebrewは入っています。
Homebrewをインストール
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
注意 インストール中にパスワードの入力を求められる場合があります。Macのログインパスワードを入力してください。
ステップ2:SQLiteをインストール
コマンド
brew install sqlite
実行結果(例)
==> Downloading https://ghcr.io/v2/homebrew/core/sqlite/...
==> Installing sqlite
==> Summary
? /usr/local/Cellar/sqlite/3.43.2: 11 files, 4.4MB
ステップ3:インストールの確認
コマンド
sqlite3 --version
実行結果 新しいバージョンが表示されれば成功です。
手動インストール(Homebrewを使いたくない場合)
説明 Homebrewを使わずにインストールする方法もあります。
ステップ1:SQLiteの公式サイトからダウンロード
- SQLite公式サイトにアクセス
- 「Precompiled Binaries for Mac OS X (x64)」を探す
sqlite-tools-osx-x64-XXXXXXX.zip
をダウンロード
ステップ2:ファイルを配置
# ダウンロードフォルダに移動
cd ~/Downloads
# zipファイルを解凍
unzip sqlite-tools-osx-x64-*.zip
# sqlite3を適切な場所にコピー
sudo cp sqlite-tools-osx-x64-*/sqlite3 /usr/local/bin/
# 実行権限を付与
sudo chmod +x /usr/local/bin/sqlite3
SQLiteを実際に使ってみる

データベースファイルを作成する
説明 SQLiteでは、1つのファイルが1つのデータベースになります。
コマンド
sqlite3 my_first_database.db
実行結果
SQLite version 3.43.2 2023-10-10 13:08:14
Enter ".help" for usage hints.
sqlite>
sqlite>
と表示されれば、SQLiteの対話モードに入っています。
基本的なSQL操作を試してみる
例1:テーブルを作成する
CREATE TABLE users (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
email TEXT
);
例2:データを挿入する
INSERT INTO users (name, email) VALUES ('田中太郎', 'tanaka@example.com');
INSERT INTO users (name, email) VALUES ('佐藤花子', 'sato@example.com');
INSERT INTO users (name, email) VALUES ('鈴木一郎', 'suzuki@example.com');
例3:データを表示する
SELECT * FROM users;
実行結果
1|田中太郎|tanaka@example.com
2|佐藤花子|sato@example.com
3|鈴木一郎|suzuki@example.com
例4:特定のデータを検索する
SELECT * FROM users WHERE name LIKE '%田中%';
実行結果
1|田中太郎|tanaka@example.com
SQLiteを終了する
コマンド
.quit
またはCtrl + D
を押しても終了できます。
便利なSQLiteコマンド
データベースの情報を確認
テーブル一覧を表示
.tables
テーブルの構造を確認
.schema users
実行結果
CREATE TABLE users (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
email TEXT
);
ファイル出力
CSVファイルとして出力
.mode csv
.output users.csv
SELECT * FROM users;
.output stdout
HTML形式で出力
.mode html
.output users.html
SELECT * FROM users;
.output stdout
データベースファイルのバックアップ
コマンド
.backup backup.db
GUIツールを使う(初心者におすすめ)

DB Browser for SQLite
説明 コマンドが苦手な方には、GUIツールがおすすめです。
インストール方法
- DB Browser for SQLite公式サイトにアクセス
- 「Download」ボタンをクリック
- Mac版をダウンロードしてインストール
使い方
- アプリを起動
- 「Open Database」で作成したデータベースファイルを開く
- GUIでテーブル作成やデータ編集が可能
Homebrewでインストール
brew install --cask db-browser-for-sqlite
SQLiteの活用例
家計簿アプリのデータベース
テーブル設計例
-- 支出記録テーブル
CREATE TABLE expenses (
id INTEGER PRIMARY KEY,
date TEXT NOT NULL,
category TEXT NOT NULL,
amount INTEGER NOT NULL,
description TEXT
);
-- データ挿入例
INSERT INTO expenses (date, category, amount, description)
VALUES ('2024-06-01', '食費', 1200, 'ランチ代');
INSERT INTO expenses (date, category, amount, description)
VALUES ('2024-06-01', '交通費', 300, '電車代');
読書記録データベース
テーブル設計例
-- 本の記録テーブル
CREATE TABLE books (
id INTEGER PRIMARY KEY,
title TEXT NOT NULL,
author TEXT NOT NULL,
read_date TEXT,
rating INTEGER,
notes TEXT
);
-- データ挿入例
INSERT INTO books (title, author, read_date, rating, notes)
VALUES ('SQLite入門', '山田太郎', '2024-06-01', 5, 'とてもわかりやすかった');
ログファイルの管理
テーブル設計例
-- アクセスログテーブル
CREATE TABLE access_logs (
id INTEGER PRIMARY KEY,
timestamp TEXT NOT NULL,
ip_address TEXT NOT NULL,
url TEXT NOT NULL,
status_code INTEGER
);
プログラミング言語との連携
Python での使用例
基本的な接続
import sqlite3
# データベースに接続
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
# テーブル作成
cursor.execute('''
CREATE TABLE IF NOT EXISTS products (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
price INTEGER
)
''')
# データ挿入
cursor.execute("INSERT INTO products (name, price) VALUES (?, ?)",
("ノートPC", 80000))
# データ取得
cursor.execute("SELECT * FROM products")
results = cursor.fetchall()
for row in results:
print(row)
# 接続を閉じる
conn.commit()
conn.close()
Node.js での使用例
必要なパッケージをインストール
npm install sqlite3
基本的な使用方法
const sqlite3 = require('sqlite3').verbose();
// データベースを開く
const db = new sqlite3.Database('example.db');
// テーブル作成
db.run(`CREATE TABLE IF NOT EXISTS tasks (
id INTEGER PRIMARY KEY,
title TEXT NOT NULL,
completed BOOLEAN DEFAULT 0
)`);
// データ挿入
db.run("INSERT INTO tasks (title) VALUES (?)", ["SQLiteを学ぶ"]);
// データ取得
db.all("SELECT * FROM tasks", (err, rows) => {
if (err) {
console.error(err);
} else {
rows.forEach(row => {
console.log(row);
});
}
});
// データベースを閉じる
db.close();
よくあるトラブルと解決方法

「permission denied」エラー
問題 ファイルへの書き込み権限がない
解決方法
# ファイルの権限を確認
ls -la *.db
# 権限を変更
chmod 644 your_database.db
「database is locked」エラー
問題 他のプロセスがデータベースを使用している
解決方法
- 他のSQLiteセッションを終了する
- アプリケーションを再起動する
- 必要に応じてファイルのロックを解除する
文字化けの問題
解決方法
-- 文字コードを確認
PRAGMA encoding;
-- UTF-8に設定(通常は自動)
PRAGMA encoding = 'UTF-8';
パフォーマンスの最適化
インデックスの作成
説明 よく検索する列にインデックスを作ると、検索が速くなります。
例
-- nameカラムにインデックスを作成
CREATE INDEX idx_users_name ON users(name);
-- 複合インデックス
CREATE INDEX idx_users_name_email ON users(name, email);
トランザクションの使用
説明 大量のデータを挿入するときは、トランザクションを使うと高速化できます。
例
BEGIN TRANSACTION;
INSERT INTO users (name, email) VALUES ('ユーザー1', 'user1@example.com');
INSERT INTO users (name, email) VALUES ('ユーザー2', 'user2@example.com');
-- ... 大量のINSERT文
COMMIT;
SQLiteのメリット・デメリット
メリット
- 簡単:セットアップが不要
- 軽量:ファイル1つで完結
- 高速:小〜中規模のデータなら非常に高速
- 信頼性:多くのアプリケーションで使用実績あり
- ポータブル:ファイルをコピーするだけでデータ移行可能
デメリット
- 同時接続:大量の同時書き込みには不向き
- データサイズ:超大規模データには不向き
- ネットワーク:リモートアクセスには不向き
- ユーザー管理:複雑な権限管理はできない
まとめ
SQLiteの基本操作
やりたいこと | コマンド |
---|---|
バージョン確認 | sqlite3 --version |
データベース作成 | sqlite3 database_name.db |
テーブル一覧 | .tables |
テーブル構造確認 | .schema table_name |
SQLite終了 | .quit |
覚えておくべきポイント
インストール
- macOSには標準でSQLiteが入っている
- 最新版が欲しければHomebrewを使う
- GUIツールもあるので初心者でも安心
基本操作
- 1つのファイル = 1つのデータベース
- 標準的なSQLが使える
- コマンドは
.
で始まる
コメント