SQLite 3 のインストール,データベース作成,テーブル定義(Windows 上)
Windows環境でのSQLite 3のインストール方法と基本的な使用方法を説明している.「winget」コマンドを用いたインストール手順,SQLite 3の起動と終了,ヘルプ表示方法,データベースの新規作成,テーブル定義,レコード挿入,SQL問い合わせなどの基本操作を具体的な例を用いて説明している.さらに,CSVファイルのインポート,テーブル一覧表示,データベース情報の表示,キャッシュサイズの設定,ジャーナルモードの変更など,SQLite 3の主要なコマンドとその使用方法も紹介している.SQLite 3を導入し基本的なデータベース操作を行うための包括的なガイドとなっている.
【目次】
SQLite 3
SQLite 3は,リレーショナルデータベース管理システム
主な機能: リレーショナルデータベース管理システムとしての基本機能,設定不要での即時利用可能,単一ファイルでのデータベース管理,サーバレス運用(クライアント側のみで完結)
SQLite 3には以下の特徴がある.
- アカウント機能(ユーザ名やパスワード)が存在しない.
- 「クライアントサーバモデル」を採用していない.
- 設定不要で即座に利用可能である.
SQLite 3は主にローカルでの使用を想定しているため,クライアントサーバモデルで運用する場合(マルチユーザ環境やネットワーク越しの利用など),SQLite 3自体には並行処理制御やリモート通信の機能が備わっていない.そのため,これらの機能が必要な場合は,利用者側でアプリケーションレベルでの実装が必要となる.
また,SQLite 3はSQL標準(SQL-92やそれ以降)の全機能をサポートしているわけではなく,一部の機能は省略されている.
SQLite 3を対話的に使用するには,通常「sqlite3コマンド(SQLite 3 コマンドラインシェル)」を使用する.ただし,多くのプログラミング言語からライブラリとして利用することも可能である.
winget を用いたインストールコマンド: winget install --scope SQLite.SQLite
Windows での動作画面例

Ubuntu での動作画面例

【関連する外部ページ】
- SQLite 3 の公式ページ: https://www.sqlite.org/
- SQLite 3 の公式ダウンロードページ: https://www.sqlite.org/download.html
- SQLite 3 のコピーライト: https://www.sqlite.org/copyright.html
- SQLite 3の SQL に関する公式の説明: http://www.hwaci.com/sw/sqlite/lang.html
- SQLite 3のコマンドラインシェルの説明:https://www.sqlite.org/sqlite.html
【サイト内の関連ページ】
- Ubuntu での SQLite 3 のインストール,データベース作成,テーブル定義,レコード挿入: 別ページ »で説明
- SQLite 3 入門(スライド資料と動画とプログラム例)(全3回): 別ページ »にまとめ
- SQLite 3 の使い方: 別ページ »にまとめている.
【関連項目】 SQLite 3 のインストール(Windows 上), SQLite 3 コマンドラインシェル
SQLite 3 コマンドラインシェル
SQLite 3 コマンドラインシェルは,Windows のコマンドプロンプトや Linux のシェルなどで動作するツールである.その主な機能は次の通りである.
- SQLite 3のデータベースを新規作成する.
例:sqlite3 新規データベース名.db
- 既存のデータベースを開く.
例:sqlite3 既存データベース名.db
- SQLの編集と実行を行う.
例:SELECT * FROM テーブル名;
- テーブルをCSVファイル形式でエクスポートする.
コマンド:.mode csv と .output ファイル名.csv,例:.mode csv → .output データ.csv → SELECT * FROM テーブル名;
- .explainコマンドを使用してSQL実行計画を表示する.
コマンド:.explain on,例:.explain on → SELECT * FROM テーブル名 WHERE 条件;
- ファイルに記述されたSQLを実行する.
コマンド:.read,例:.read SQLファイル.sql
- データベーススキーマを表示する.
コマンド:.schema,例:.schema テーブル名
- テーブルをテキストファイル形式でダンプおよびリストアする.
ダンプコマンド:.dump,例:.dump テーブル名 > ダンプファイル.sql,リストアは.readコマンドを使用
【関連する外部ページ】
- SQLite 3 の公式ページ: https://www.sqlite.org/
- SQLite 3のコマンドラインシェルの説明:https://www.sqlite.org/sqlite.html
【サイト内の関連ページ】
- SQLite 3 コマンドラインシェルの主な機能: 別ページ »で説明
【関連項目】 SQLite 3, SQLite 3 のインストール(Windows 上)
SQLite 3 のインストール(Windows 上)
- Windows で,コマンドプロンプトを管理者権限で起動する(例:Windowsキーを押し,「cmd」と入力し,「管理者として実行」を選択)
- 次のコマンドを実行
次のコマンドは,SQLite 3をインストールするものである.
winget install --scope machine SQLite.SQLite
- 確認のため,
Windows のコマンドプロンプトで、次のコマンドを実行する.
エラーメッセージが出なければOK.
where sqlite3 sqlite3 .exit
SQLite 3 の起動と終了,ヘルプの表示,エンコーディングの確認
- SQLite 3の起動
このとき,データベース名として mydb を指定する.SQLite 3の流儀で,データベース名はファイル名になる.
* データベース名はなんでも良いが、アルファベットのみを使うのが良い.
sqlite3 mydb
- ヘルプの表示
「.help」で,ヘルプが表示される.
.help
- 現在使用中のデータベースについての,文字のエンコーディングの確認
「PRAGMA encoding;」で,エンコーディングが表示される.
PRAGMA encoding;
- SQLite 3の終了
「.exit」で終了.
.exit
使い方の詳しい説明は https://www.sqlite.org/sqlite.html
空のデータベースの新規作成
ここでの設定
- 生成したいデータベースファイル名: C:\sqlite3\hoge.db ※ 書き込み権限のあるディレクトリを使用するのが良い
- SQLite を実行する.
* パスが通っていないときは,パスを通すか,フルパスで実行する
sqlite3
- データベースの新規作成
空のデータベースを作成したいので次のように操作.
「--new 」を付けているので,すでにデータベースファイルが存在するときは,その中身を空にする.
.open --new hoge.db
- 「.exit」を実行して,SQLite 3 を終了.
.exit
テーブル定義,レコード挿入,SQL問い合わせ
- SQLite を実行する.
* パスが通っていないときは,パスを通すか,フルパスで実行する
sqlite3
- データベースの新規作成
空のデータベースを作成したいので次のように操作.
「--new 」を付けているので,すでにデータベースファイルが存在するときは,その中身を空にする.
.open --new hoge.db
- テーブル定義
* テーブル名に日本語を使うとエラーが出る場合がある.
create table order_records ( id integer primary key not null, year integer not null CHECK ( year > 2008 ), month integer not null CHECK ( month >= 1 AND month <= 12 ), day integer not null CHECK ( day >= 1 AND day <= 31 ), customer_name text not null, product_name text not null, unit_price real not null check ( unit_price > 0 ), qty integer not null default 1 check ( qty > 0 ), created_at timestamp not null default (datetime('now', 'localtime')), updated_at timestamp not null default (datetime('now', 'localtime')), check ( ( unit_price * qty ) < 200000 ) ); create trigger order_records_update after update on order_records begin update order_records set updated_at = (datetime('now', 'localtime')) where id = new.id; end;
- 「.tables」を実行して,テーブルが定義できたことを確認.
.tables
- SQL を用いたレコード挿入
begin transaction; insert into order_records (id, year, month, day, customer_name, product_name, unit_price, qty) values( 1, 2024, 7, 26, 'kaneko', 'orange A', 1.2, 10 ); insert into order_records (id, year, month, day, customer_name, product_name, unit_price, qty) values( 2, 2024, 7, 26, 'miyamoto', 'Apple M', 2.5, 2 ); insert into order_records (id, year, month, day, customer_name, product_name, unit_price, qty) values( 3, 2024, 7, 27, 'kaneko', 'orange B', 1.2, 8 ); insert into order_records (id, year, month, day, customer_name, product_name, unit_price) values( 4, 2024, 7, 28, 'miyamoto', 'Apple L', 3 ); commit;
- SQL 問い合わせで,確認.
select * from order_records;
- 更新し確認表示
begin transaction; update order_records set unit_price = 11.2 where id = 1; commit; select * from order_records;
- 「.tables」を実行して,テーブルが定義できたことを確認.
.tables
- 「.exit」を実行して,SQLite 3 を終了.
.exit
SQLite 3 の主なコマンド
pragma については https://www.sqlite.org/pragma.html
- CSVファイルのインポート: .import
.separator , .import T1M.csv T1M
- テーブル一覧表示: .tables
- データベースの情報: .dbinfo
- キャッシュサイズの確認: pragma cache_size;
SQLite 3 のキャッシュサイズは,オープンしたデータベースについて,最大どれだけをメモリに保持するか.「-」が付いているときは,単位は1024バイト.
- キャッシュサイズの変更: pragma cache_size=...
キャッシュサイズの変更.「-500」のように「-」を付けると,単位は 1024 バイト.単純に「512000」のように書くとバイト単位.
- 既定のキャッシュサイズ: pragma default_cache_size;
- ページサイズ: pragma page_size;
- 最大ページ数: pragma max_page_count;
- pragma journal_mode;
現在接続しているデータベースについてのジャーナルモード.ジャーナルは,トランザクションのロールバックのために用いるもの(SQLite 3 の独自用語ではない)
- pramga journal_mode=;
delete, truncate, persiste, memory, wal, off に設定できる.
【まとめ】Windows上でのSQLite 3の導入から基本的なデータベース操作までを説明