SQLite 3 のインストール,データベース作成,テーブル定義(Windows 上)

Windows環境でのSQLite 3のインストール方法と基本的な使用方法を説明している.「winget」コマンドを用いたインストール手順,SQLite 3の起動と終了,ヘルプ表示方法,データベースの新規作成,テーブル定義,レコード挿入,SQL問い合わせなどの基本操作を具体的な例を用いて説明している.さらに,CSVファイルのインポート,テーブル一覧表示,データベース情報の表示,キャッシュサイズの設定,ジャーナルモードの変更など,SQLite 3の主要なコマンドとその使用方法も紹介している.SQLite 3を導入し基本的なデータベース操作を行うための包括的なガイドとなっている.

目次

  1. SQLite 3 のインストール(Windows 上)
  2. SQLite 3 の起動と終了,ヘルプの表示,エンコーディングの確認
  3. 空のデータベースの新規作成
  4. テーブル定義

SQLite 3

SQLite 3は,リレーショナルデータベース管理システム

主な機能: リレーショナルデータベース管理システムとしての基本機能,設定不要での即時利用可能,単一ファイルでのデータベース管理,サーバレス運用(クライアント側のみで完結)

SQLite 3には以下の特徴がある.

  1. アカウント機能(ユーザ名やパスワード)が存在しない.
  2. 「クライアントサーバモデル」を採用していない.
  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 のインストール(Windows 上), SQLite 3 コマンドラインシェル

SQLite 3 コマンドラインシェル

SQLite 3 コマンドラインシェルは,Windows のコマンドプロンプトや Linux のシェルなどで動作するツールである.その主な機能は次の通りである.

  1. SQLite 3のデータベースを新規作成する.

    例:sqlite3 新規データベース名.db

  2. 既存のデータベースを開く.

    例:sqlite3 既存データベース名.db

  3. SQLの編集と実行を行う.

    例:SELECT * FROM テーブル名;

  4. テーブルをCSVファイル形式でエクスポートする.

    コマンド:.mode csv と .output ファイル名.csv,例:.mode csv → .output データ.csv → SELECT * FROM テーブル名;

  5. .explainコマンドを使用してSQL実行計画を表示する.

    コマンド:.explain on,例:.explain on → SELECT * FROM テーブル名 WHERE 条件;

  6. ファイルに記述されたSQLを実行する.

    コマンド:.read,例:.read SQLファイル.sql

  7. データベーススキーマを表示する.

    コマンド:.schema,例:.schema テーブル名

  8. テーブルをテキストファイル形式でダンプおよびリストアする.

    ダンプコマンド:.dump,例:.dump テーブル名 > ダンプファイル.sql,リストアは.readコマンドを使用

関連する外部ページ

サイト内の関連ページ

関連項目SQLite 3, SQLite 3 のインストール(Windows 上)

SQLite 3 のインストール(Windows 上)

  1. Windows で,コマンドプロンプト管理者権限で起動する(例:Windowsキーを押し,「cmd」と入力し,「管理者として実行」を選択)
  2. 次のコマンドを実行

    次のコマンドは,SQLite 3をインストールするものである.

    winget install --scope machine SQLite.SQLite
    
  3. 確認のため, Windowsコマンドプロンプトで、次のコマンドを実行する. エラーメッセージが出なければOK.
    where sqlite3
    sqlite3
    .exit
    

SQLite 3 の起動と終了,ヘルプの表示,エンコーディングの確認

使い方の詳しい説明は https://www.sqlite.org/sqlite.html

空のデータベースの新規作成

ここでの設定

  1. SQLite を実行する.

    * パスが通っていないときは,パスを通すか,フルパスで実行する

    sqlite3
    
  2. データベースの新規作成

    空のデータベースを作成したいので次のように操作.

    「--new 」を付けているので,すでにデータベースファイルが存在するときは,その中身を空にする.

    .open --new hoge.db
    
  3. 「.exit」を実行して,SQLite 3 を終了.
    .exit
    

テーブル定義,レコード挿入,SQL問い合わせ

  1. SQLite を実行する.

    * パスが通っていないときは,パスを通すか,フルパスで実行する

    sqlite3 
    
  2. データベースの新規作成

    空のデータベースを作成したいので次のように操作.

    「--new 」を付けているので,すでにデータベースファイルが存在するときは,その中身を空にする.

    .open --new hoge.db
    
  3. テーブル定義

    * テーブル名に日本語を使うとエラーが出る場合がある.

    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;
    
  4. 「.tables」を実行して,テーブルが定義できたことを確認.
    .tables 
    
  5. 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;
    
  6. SQL 問い合わせで,確認.
    select * from order_records;
    
  7. 更新し確認表示
    begin transaction;
    update order_records set unit_price = 11.2 where id = 1;
    commit;
    select * from order_records;
    
  8. 「.tables」を実行して,テーブルが定義できたことを確認.
    .tables 
    
  9. 「.exit」を実行して,SQLite 3 を終了.
    .exit
    

SQLite 3 の主なコマンド

pragma については https://www.sqlite.org/pragma.html

【まとめ】Windows上でのSQLite 3の導入から基本的なデータベース操作までを説明