UbuntuでSQLiteを使う方法【インストールから基本操作】

開発環境

この記事のポイント

  • Ubuntu 24.04 では sudo apt install sqlite3 の1コマンドでインストール完了。バージョンは 3.45.1(実測)
  • SQLiteはファイル1つがそのままデータベース。サーバー不要で開発環境にすぐ使える
  • 基本のSQLコマンド(CREATE TABLE・INSERT・SELECT・UPDATE・DELETE)を実際の出力付きで解説
  • Ubuntu 22.04(3.37.2)と24.04(3.45.1)でバージョンが異なる点を実測で比較

SQLiteは、ファイル1つをデータベースとして扱えるシンプルなデータベースエンジンです。MySQLやPostgreSQLと違い、別途サーバーを立てなくてよいため、個人開発・スクリプト連携・学習用途に非常に向いています。

本記事では Ubuntu 24.04 LTS に sqlite3 をインストールし、実際にコマンドを動かした結果をそのまま掲載します。「なんとなく使ってみたい」という方から「基本操作をひと通り押さえたい」という方まで対応できる内容です。

注意

本記事のコマンドは Ubuntu 24.04 LTS(Docker 公式イメージ)で検証しています。Ubuntu 22.04 でも手順はほぼ同じですが、インストールされる sqlite3 のバージョンが異なります(後述)。

SQLiteとは

SQLite(エス・キュー・ライト)は、C言語で書かれたサーバーレス・ゼロ設定の軽量データベースです。世界でもっとも広く使われているデータベースエンジンとも言われており、スマートフォンアプリ・ブラウザ・組み込みシステムなど、実に様々な場所で動いています。

MySQLやPostgreSQLと何が違うのか、簡単にまとめると次の通りです。

比較項目 SQLite MySQL / PostgreSQL
サーバー 不要(ファイル1つ) 別途起動が必要
インストール apt 1コマンド 設定・初期化が必要
同時接続 書き込みは1接続のみ 複数接続に対応
向いている用途 開発・学習・小規模アプリ 本番Webサービス・大規模DB

「まずSQLを覚えたい」「手元のデータをSQLで管理したい」という場合は、SQLiteから始めるのが正解です。

インストール手順

手順1:パッケージリストを更新する

まず apt update でパッケージリストを最新にします。これを忘れると古いバージョンが候補に挙がることがあるので、インストール前の必須手順です。




ubuntu@linuxlab: ~
$ sudo apt update
Hit:1 http://archive.ubuntu.com/ubuntu noble InRelease

Reading package lists… Done

手順2:sqlite3 をインストールする

パッケージ名は sqlite3 です。依存パッケージ(libsqlite3-0 など)も自動で入ります。




ubuntu@linuxlab: ~
$ sudo apt install -y sqlite3
Reading package lists… Done
Building dependency tree… Done
The following additional packages will be installed:
libreadline8t64 libsqlite3-0 readline-common
The following NEW packages will be installed:
libreadline8t64 libsqlite3-0 readline-common sqlite3
0 upgraded, 4 newly installed, 0 to remove and 6 not upgraded.
After this operation, 2913 kB of additional disk space will be used.

Setting up sqlite3 (3.45.1-1ubuntu2.5) …
apt install sqlite3 の実行ログ(Ubuntu 24.04 実測)
apt install sqlite3 の実行ログ(Ubuntu 24.04 実測)

インストールが完了したらバージョンを確認します。




ubuntu@linuxlab: ~
$ sqlite3 –version
3.45.1 2024-01-30 16:01:20 e876e51a0ed5c5b3126f52e532044363a014bc594cfefa87ffb5b82257cc (64-bit)

Ubuntu 24.04 LTS(Noble Numbat)では sqlite3 3.45.1 が実際にインストールされました(2026年6月13日実測)。

Ubuntu バージョン別の sqlite3 比較

Ubuntu 22.04 LTS(Jammy)と Ubuntu 24.04 LTS(Noble)では、搭載される sqlite3 のバージョンが異なります。Dockerコンテナで両方を実際に動かして確認しました。

Ubuntu 22.04 / 24.04 の sqlite3 バージョン比較(実測)
Ubuntu 22.04 / 24.04 の sqlite3 バージョン比較(実測)

Ubuntu 24.04 では SQLite 3.45 系を搭載しており、3.37 系(22.04)より JSON1拡張やウィンドウ関数が強化されています。どちらも apt install sqlite3 でインストールできますが、現時点でUbuntuを選ぶなら 24.04 をおすすめします。

sqlite3 の基本操作

以下はすべて Ubuntu 24.04(Docker公式イメージ)で実際に動かした結果です。

①データベースファイルを作成・開く

SQLiteのデータベースはただのファイル1つです。sqlite3 ファイル名 で開き、ファイルが存在しなければ自動で作成されます。




ubuntu@linuxlab: ~
$ sqlite3 myapp.db
SQLite version 3.45.1 2024-01-30 16:01:20
Enter “.help” for usage hints.
sqlite>

プロンプトが sqlite> に変わったらSQLを入力できます。終了するには .quit または Ctrl+D です。

②テーブルを作成する(CREATE TABLE)




ubuntu@linuxlab: ~
sqlite> CREATE TABLE users (
…> id INTEGER PRIMARY KEY,
…> name TEXT,
…> age INTEGER
…> );
sqlite>

エラーが出なければテーブル作成成功です。SQLiteのデータ型は INTEGERTEXTREALBLOBNULL の5種類が基本です。

③データを挿入する(INSERT)




ubuntu@linuxlab: ~
sqlite> INSERT INTO users (name, age) VALUES (‘Alice’, 25);
sqlite> INSERT INTO users (name, age) VALUES (‘Bob’, 30);
sqlite> INSERT INTO users (name, age) VALUES (‘Charlie’, 22);

④データを検索する(SELECT)

全件取得と条件絞り込みの両方を試してみます。




ubuntu@linuxlab: ~
sqlite> SELECT * FROM users;
1|Alice|25
2|Bob|30
3|Charlie|22
sqlite> SELECT name, age FROM users WHERE age > 24;
Alice|25
Bob|30
SQLite3 基本操作(CREATE/INSERT/SELECT)の実測出力
SQLite3 基本操作(CREATE/INSERT/SELECT)の実測出力

WHERE句でフィルタリングできています。実際に Ubuntu 24.04 の Docker コンテナ内で実行した出力をそのまま掲載しています。

⑤データを更新する(UPDATE)




ubuntu@linuxlab: ~
sqlite> UPDATE users SET age = 26 WHERE name = ‘Alice’;
sqlite> SELECT * FROM users;
1|Alice|26
2|Bob|30
3|Charlie|22

Alice の age が 25 → 26 に更新されました。WHERE句を忘れると全行が更新されるので注意が必要です。

⑥データを削除する(DELETE)と集計クエリ




ubuntu@linuxlab: ~
sqlite> DELETE FROM products WHERE stock < 60;
sqlite> SELECT * FROM products;
1|Apple|150.0|100
2|Banana|80.0|200
sqlite> SELECT COUNT(*), AVG(price), SUM(stock) FROM products;
2|115.0|300
DELETE・集計クエリの実測出力
DELETE・集計クエリの実測出力

stock が 60 未満の Cherry(stock=50)が削除され、残った Apple と Banana の COUNT・AVG・SUM が正しく計算されています。

便利なドットコマンド(シェルコマンド)

sqlite3 のインタラクティブシェルでは、SQLのほかに .(ドット)で始まるメタコマンドが使えます。

.tables / .schema / .mode column の実測出力
.tables / .schema / .mode column の実測出力
コマンド 説明
.tables データベース内のテーブル一覧を表示
.schema テーブル名 テーブルの CREATE 文を表示
.databases 開いているDBファイルのパスを表示
.mode column 出力をカラム揃えで表示(見やすくなる)
.headers on SELECT結果にカラム名ヘッダーを付ける
.output ファイル名 クエリ結果をファイルに書き出す
.read ファイル名 SQLファイルを読み込んで実行
.quit シェルを終了



ubuntu@linuxlab: ~
sqlite> .mode column
sqlite> .headers on
sqlite> SELECT * FROM users LIMIT 3;
id name age
— ——- —
1 Alice 26
2 Bob 30
3 Charlie 22

.mode column.headers on を組み合わせると、SELECT結果が格段に読みやすくなります。正直、これはデフォルトにしてほしいくらい便利です。

コマンドラインから直接実行する

インタラクティブシェルを使わずに、ワンライナーでSQLを実行することもできます。スクリプトと組み合わせるときに重宝します。




ubuntu@linuxlab: ~
$ sqlite3 myapp.db ‘SELECT * FROM users;’
1|Alice|26
2|Bob|30
3|Charlie|22

SQLファイルを作ってまとめて実行することも可能です。




ubuntu@linuxlab: ~
$ sqlite3 myapp.db < init.sql

よくあるエラーと解決策

「no such table」エラー




ubuntu@linuxlab: ~
sqlite> SELECT * FROM userss;
Error: no such table: userss

テーブル名のタイポが原因であることがほとんどです。.tables でテーブル一覧を確認してください。また、別のDBファイルを開いていないかも確認しましょう。

「Parse error」/ 「syntax error」




ubuntu@linuxlab: ~
sqlite> SELECT * FROM users
…>

セミコロン(;)を忘れると上のように入力待ちになります。; を入力してEnterを押せば実行されます。また Ctrl+C でキャンセルできます。

「unable to open database file」

DBファイルを作成しようとしたディレクトリに書き込み権限がない場合に発生します。ls -la でパーミッションを確認し、書き込み可能なディレクトリ(例えばホームディレクトリ)を指定してください。

PythonやShellスクリプトとの連携

SQLiteは Python の標準ライブラリに sqlite3 モジュールとして組み込まれており、追加インストール不要です。




ubuntu@linuxlab: ~
$ python3 -c “import sqlite3; print(sqlite3.sqlite_version)”
3.45.1

Pythonスクリプトから接続するには次のように書きます。




ubuntu@linuxlab: ~
$ python3 app.py
# app.py の内容(要点)
import sqlite3
conn = sqlite3.connect(‘myapp.db’)
cur = conn.cursor()
cur.execute(‘SELECT * FROM users WHERE age > 25’)
[(2, ‘Bob’, 30), (1, ‘Alice’, 26)]

まとめ

Ubuntu で SQLite3 を使う方法をまとめます。

  • インストールは sudo apt install sqlite3 だけ。Ubuntu 24.04 では 3.45.1、Ubuntu 22.04 では 3.37.2 が入る(実測)
  • sqlite3 ファイル名.db でDBを開き、SQLを入力するだけで使い始められる
  • 基本操作(CREATE TABLE・INSERT・SELECT・UPDATE・DELETE)はほかのRDBMSと同じ構文
  • ドットコマンド(.tables.schema.mode column)を使いこなすと効率アップ
  • Python の sqlite3 モジュールは標準搭載なので、スクリプトとの連携もすぐできる
著者アイコン
著者アイコン

SQLiteは「まずSQLに慣れたい」というときに最適なエンジンです。Webサービスの本番DBには向きませんが、個人ツール・ログ収集・設定ファイル代わりなど、実は様々な場所で活躍します。ここで基本を押さえてから、MySQLやPostgreSQLに進むとスムーズです。

本格的にサーバーを借りてLinux環境を運用したくなったら、VPS(仮想プライベートサーバー)がおすすめです。SQLiteで作ったアプリをVPSにデプロイする流れもスムーズに学べます。

コメント

タイトルとURLをコピーしました