SQLiteman のインストールと利用(Windows 上)

概要

SQLiteman は,SQLite 3 のデータベースを操作する機能を持ったソフトウェアである。 Windows 版,Linux 版,Mac OS X 版がある。ソースコードも配布されている。 このページでは,下記の操作を行う手順を説明する。

目次

関連する外部ページ

【サイト内の関連ページ】

SQLite 3 活用ガイド

1. あらかじめ決めておく事項

このページでは,データベースの生成を行うので, 生成するデータベースファイル名を決めておくこと。 このページでは,次のように書く。

2. SQLiteman Windows 版のインストール

インストール・ディレクトリ: C:\SQLite

  1. 新しいディレクトリ C:\SQLite を作る。

    ここに データベースファイルを置くことにする。

  2. SQLiteman を入手する。SourceForge のウェブページを開く。

    https://sourceforge.net/projects/sqliteman/

  3. Files」をクリックする。
  4. sqliteman」をクリックする。
  5. 最新版が欲しいので,「1.2.2」をクリックする。
  6. Windows 版が欲しいので「Sqliteman-1.2.2-win32.zip」をクリックする。
  7. ダウンロードが始まる。
  8. ダウンロードした .zip ファイルを展開(解凍)する。

    以下,C:\SQLite に展開(解凍)したとして説明を続ける。

    Windows での展開(解凍)に便利な 7-Zip: 別ページ »で説明する。
  9. 確認のため,sqliteman.exe を試しに実行する。

    新しい画面が開くので確認する。

3. Ubuntu での SQLiteman のインストール(Install Sqliteman on Ubuntu)

Ubuntu での SQLiteman のインストールは,次のコマンドにより行う。

# パッケージリストの情報を更新
sudo apt update
sudo apt -y install sqliteman

4. SQLiteman の起動と終了

  1. SQLiteman の起動

    * Windows での SQLiteman の起動例

    Windows での操作例

    SQLiteman の新しいウインドウが開く。

    * Ubuntu での SQLiteman の起動例

    端末を開き,「sqliteman」を実行する。

    SQLiteman の新しいウインドウが開く。

  2. ヘルプの表示

    Help」→「Help Content」でヘルプが表示される。

  3. 終了

    File」→「Exit」で終了する。

5. SQLiteman で SQLite 3 のデータベースの新規作成

以下の手順で,新しいデータベースを作成する。その結果,データベースファイルができる。

ここでの設定
  1. sqliteman を起動する。

    Windows での操作例

  2. データベースを生成したいので,「File」→「New」と操作する。
  3. データベースの新規作成を開始する

    * Windows での実行例(データベースファイル名を「hoge.db」にする場合) ディレクトリと,データベースファイル名を指定し,「保存」をクリックする。

    * 以下の例では「C:\SQLite\hoge.db」を指定している。

    * データベースファイル名は何でもよいが,英語の名前がよい。

    * データベースを新規作成したいときは,データベースファイル名として「新しい」ものを指定すること

    * Ubuntu での実行例(データベースファイル名を「mydb」にする場合)

    データベースファイル名である mydb を指定し,「保存」をクリックする。

    * データベースファイル名は何でもよいが,英語の名前がよい。

    * データベースを新規作成したいときは,データベースファイル名として「新しい」ものを指定すること

6. SQLiteman で既存のデータベースを開く

すでに作成済みのデータベースを,下記の手順で開くことができる。

  1. sqliteman を起動する。

    Windows での操作例

  2. データベースをオープンしたいので,「File」→「Open」と操作する。
  3. オープンしたいデータベースのデータベースファイル名(下の図では hoge.db)を選び,「開く」をクリックする。
  4. データベースの中身が表示されるので確認する。
  5. テキスト・エンコーディングの設定を確認する。

    まず,「Pragmas」をクリックする。

    encoding の行に「UTF-8」のように表示されている。

    * もし,データベースの文字のエンコーディングを変えたいときは, SQLiteman のようなグラフィカルなツールを使うのではなく, sqlite3 を起動し「PRAGMA encoding=...;」で変える方が簡単である。 例えば「UTF-16le」などに変えたい場合である。

  6. もしテーブルを作成済みならば,「Tables」を展開すると,テーブルの一覧(List of Tables)が表示されるので確認する。
  7. もしテーブルを作成済みならば,「System Catalogue」を展開し,「sqlite_master」をクリックすると,データベース・スキーマ(database schema)が表示される

7. SQL を用いたテーブル定義と一貫性制約の記述

SQL を用いて,order_records テーブルを定義し,一貫性制約を記述する。

リレーショナル・スキーマ

order_records(id, year, month, day, customer_name, product_name, unit_price, qty, created_at, updated_at)

  1. sqliteman を実行する。
  2. データベースをオープンしたいので,「File」→「Open」と操作する。
  3. オープンしたいデータベースのデータベースファイル名(下の図では hoge.db)を選び,「開く」をクリックする。
  4. テーブル定義

    SQL 編集画面に,次のような SQL を書く。

    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 ) );
    

    * 「SQL Editor」のウインドウには,SQL プログラムを書くことができる。

  5. マウスカーソルを先頭に移して(先頭部分をクリック)から,「実行ボタン(Run SQL)」をクリックする。
  6. コンソールの確認

    エラーメッセージが出ていないことを確認する。

  7. 「Tables」を展開し,いま定義したテーブル「order_records」をダブルクリックする。すると,テーブル編集画面が開く。テーブルの中身は空である。

    これで,テーブル定義がうまくいったことを確認する。

8. SQL を用いたテーブルへの行の挿入

以下の手順で,SQL を用いて order_records テーブルへの行の挿入を行う。

  1. SQL 文の記述

    「insert into ...」は行の挿入である。ここには 4つの SQL 文を書き,「begin transaction」と「commit」で囲む。

    * つまり, 挿入の前に begin transaction; を実行し,一連の挿入が終わったら commit; を実行する。

    begin transaction;
    insert into order_records (id, year, month, day, customer_name, product_name, unit_price, qty) values( 1001, 2022, 1, 26,  'kaneko',   'orange A', 1.2, 10 );
    insert into order_records (id, year, month, day, customer_name, product_name, unit_price, qty) values( 1002, 2022, 1, 26,  'miyamoto', 'Apple M',  2.5, 2 );
    insert into order_records (id, year, month, day, customer_name, product_name, unit_price, qty) values( 1003, 2022, 1, 27,  'kaneko',   'orange B', 1.2, 8 );
    insert into order_records (id, year, month, day, customer_name, product_name, unit_price, qty) values( 1004, 2022, 1, 27,  'kaneko',   'orange B', 1.2, 8 );
    commit;
    
    insert into には 2つの方法がある。

    * 属性の値を,テーブル定義の順にすべて並べる。

    insert into order_records values( 1, 2022, 1, 26,  'kaneko', 'orange A', 1.2, 10, datetime('now', 'localtime'), datetime('now', 'localtime') );
    

    * 属性の値の並び方を,属性名を使って明示的に指定する。

    このとき,属性値を省略すると,テーブル定義のときに指定されたデフォルト値が使われる。

    insert into order_records (year, month, day, customer_name, product_name, unit_price, qty) values( 2022, 1, 26,  'miyamoto', 'Apple M',  2.5, 2 );
    
  2. 複数の SQL 文の一括実行

    複数の SQL 文を一括実行したいので,カーソルを先頭行に移動した後に,「Run multiple SQL statements ...」のボタンをクリックする。

  3. 「Script Output」ウインドウの確認

    エラーメッセージが出ていないことを確認する。

9. 一貫性制約に違反する更新ができないことの確認

ここでは,一貫性制約に違反するような更新を試みる。データベース管理システムソフトウェアが一貫性を維持するので, 一貫性制約に違反するような更新はできない。

主キー制約(PRIMARY KEY)

begin transaction;
insert into order_records (id, year, month, day, customer_name, product_name, unit_price, qty) values( 1003, 2018, 4, 30, 'kaneko', 'orange A', 1.2, 3 );
ROLLBACK;

* すでに属性 id には 1003 という値がある。 主キー制約「PRIMARY KEY」に違反する。

非空制約(not null)

begin transaction;
insert into order_records (id, year, month, day, customer_name, product_name, unit_price, qty) values( 1005, 2018, 4, 30,  NULL, 'orange A', 1.2, 3 );
ROLLBACK;

* 非空制約「not null」により, 属性 customer_name には NULL を入れることができない。

その他の一貫性制約

一貫性制約に違反する例

begin transaction;
insert into order_records (id, year, month, day, customer_name, product_name, unit_price, qty) values( 1006, 1009, 10, 30,  'kaneko', 'orange A', 1.2, 3 );
ROLLBACK;

* 制約「CHECK ( year > 2008 )」に違反する。

10. SQL 問い合わせの発行と評価結果の確認

ここでは,SQL を用いた問い合わせの実行例を示す。 SQL 問い合わせの詳細については,別の Web ページで説明する。ここでは,テーブルの中身を確認してほしい。

テーブルのすべての行の表示

SELECT * FROM order_records;

条件を満足する行のみの表示

SELECT * FROM order_records WHERE product_name = 'orange B';
SELECT * FROM order_records WHERE customer_name LIKE 'k%';

LIKE は文字列のパターンマッチである。

SELECT * FROM order_records WHERE qty >= 10;
SELECT * FROM order_records WHERE qty < 10 AND customer_name = 'kaneko';

11. SQL を用いた更新

SQL を用いたデータの更新(update)の実行例を示す。 「UPDATE <table-name> SET <attribute-name>=<expression> WHERE <expression>」の形をした SQL は,データの更新である。 この SQL 文を「begin transaction」と「commit」で囲む。

  1. SQL 文の記述

    「UPDATE ... SET ...」は更新である。ここには 1つの SQL 文を書き, 「begin transaction」と「commit」で囲む。

    begin transaction;
    UPDATE order_records SET qty=12
    WHERE id = 1001;
    commit;
    
  2. 複数の SQL 文の一括実行

    複数の SQL 文を一括実行したいので,カーソルを先頭行に移動した後に,「Run multiple SQL statements ...」のボタンをクリックする。

  3. 「Script Output」ウインドウの確認

    エラーメッセージが出ていないことを確認する。

  4. order_records テーブルのブラウズ(Browse table 'order_records')

12. SQL を用いた行の削除

SQL を用いた行の削除(delete row(s))の実行例を示す。

DELETE FROM <table-name> WHERE <expression>;」の形をした SQL は行の削除である。 この SQL 文を「begin transaction」と「commit」で囲む。

  1. SQL 文の記述
    begin transaction;
    DELETE FROM order_records
    WHERE id = 1002;
    commit;
    
  2. 複数の SQL 文の一括実行

    複数の SQL 文を一括実行したいので,カーソルを先頭行に移動した後に,「Run multiple SQL statements ...」のボタンをクリックする。

  3. 「Script Output」ウインドウの確認

    エラーメッセージが出ていないことを確認する。

  4. order_records テーブルのブラウズ

13. SQLiteman を用いたデータのブラウズ

  1. まず,オブジェクト・ブラウザ(Object Browser)の中の「Tables」を展開する。
  2. 次に,テーブル order_records を選ぶ(Select table 'order_records')。
  3. テーブル order_records が表示される(table 'order_records' appears)。

    * もし,データに間違いがあれば,このウインドウで修正できる (If you find any mistakes, you can modify the data using this window)。

  4. 行を削除したいときは,左端の行番号をクリックした後,「この行を削除」を選ぶ。

14. テーブルの CSV ファイル形式データのインポート(Import table data)

  1. CSV ファイルを準備しておく。

    ここで使用する CSV ファイル: 580.csv

  2. Database」→「Import Table Data ...」と操作する。
  3. インポート先のテーブル名ファイル名を設定し,「Comma」を選び, 下側のプレビュー画面を確認したのち,「OK」をクリックする。

15. 日本語を試してみる

テーブルのデータとして日本語を試す(属性名やテーブル名を日本語にするわけではない)。

  1. SQL 文の記述
    create table JANCHAR (
      id integer primary key not null,
      bunsyou text
    );
    begin transaction;
    insert into JANCHAR values( 1, 'コンニチハ' );
    insert into JANCHAR values( 2, '① ② I Ⅱ ㍉ ㌢ ㈱' );
    insert into JANCHAR values( 3, '‖ 〜 − ¢ £ ¬' );
    insert into JANCHAR values( 4, '表 十 構' );
    insert into JANCHAR values( 5, '' );
    commit;
    
  2. 複数の SQL 文の一括実行(Execute multiple SQL statements)

    複数の SQL 文を一括実行したいので,カーソルを先頭行に移動した後に,「Run multiple SQL statements ...」のボタンをクリックする。

  3. 「Script Output」ウインドウの確認

    エラーメッセージが出ていないことを確認する。

  4. JANCHAR テーブルのブラウズ(Browse table 'JANCHAR')