トップページ -> 研究道具箱と入門演習 -> データベース特論・支援 Web ページ -> SQLite 問い合わせ・ブラウザ (SQLite Query Browser) を使ってみる
[サイトマップへ]   [全文検索へ]   [統計情報へ]   [掲示板へ]  

SQLite 問い合わせ・ブラウザ (SQLite Query Browser) を使ってみる

サイト構成 連絡先,業績など 実践知識 データの扱い コンピュータ 教材 サポートページ

この Web ページで行うこと


演習を行うために必要になる機能や文法

SQLite の SQL の説明は http://www.hwaci.com/sw/sqlite/lang.html (English Web Page) にある.


SQLite Database Browser のインストール (Install SQLite Database Browser)

  1. ディレクトリ C:\SQLite を使う

    ここに SQLite Database Browser とデータベースファイルを置くことにする.

  2. SQLite Query Browser の Windows 版の入手

    http://sqlitebrowser.sourceforge.net/index.html

  3. sqlitebrowser-1.3-win.zip の解凍

    解凍すると SQLite Database Browser.exeができる.

  4. SQLite Database Browser.exe を C:/SQLite にコピー


SQLite Database Browser の起動と終了 (Start and end SQLite Database Browser)

  1. SQLite Database Browser の起動 (Start SQLite Database Browser)

    「SQLite Database Browser.exe」 をダブルクリック (double click "SQLite Database Browser.exe")

    新しいウインドウが開く.(A New window appears)

  2. 終了 (End SQLite Database Browser)

    File」→ 「Exit」で終了.


SQLite Database Browser で既存のデータベースを開く (Open an existing database using SQLite Database Browser)

以下の手順で,既存のデータベース「C:\SQLite\mydb」を開く. (Open an existing database 'C:\SQlite\mydb')

  1. File」→ 「Open Database

  2. データベースファイル C:\SQLite\mydb を選び, 「開く」をクリック (Click '開く' after choosing the database file "C:\SQLite\mydb")

  3. テーブルの一覧 (List of Tables) が表示されるので確認する (List of tables appears)


SQL を用いたテーブル定義と一貫性制約の記述 (Table definition and integrity constraint specification using SQL)

SQL を用いて,products テーブルを定義し,一貫性制約を記述する. (Define 'products' table and specify integrity constrants of the table using SQL)

リレーショナル・スキーマ (relational schema): products(id, product_name, type, cost)
CREATE TABLE products (
    id            INTEGER  PRIMARY KEY AUTOINCREMENT NOT NULL,
    product_name  TEXT     UNIQUE NOT NULL,
    type          TEXT     NOT NULL, 
    cost          REAL );
  1. Execute SQL」をクリック (Click "Execute SQL")

    ※ 「SQL string」のウインドウには,SQL プログラムを1つ書くことができる(2つ以上書いた場合には,最初の SQL プログラムだけが評価される). In the 'SQL string' window, you can write down one SQL program. If you write more-than-one SQL programs, only the first one will be evaluated.

  2. products テーブルの定義

    次の SQL を入力し,「Execute Query」をクリック (Write the following SQL, and click 'Execute Query').


SQL を用いたテーブルへの行の挿入 (Insert rows into a table using SQL)

次のような products テーブルを作る. (Construct table 'products')

以下の手順で,SQL を用いて products テーブルへの行の挿入を行う (Insert rows into table 'products' using SQL)

  1. INSERT INTO products VALUES( 1, 'Fukuoka apple', 'apple', 50 );

  2. INSERT INTO products VALUES( 2, 'Kumamoto orange L', 'orange', 30 );

  3. INSERT INTO products VALUES( 3, 'Kumamoto orange M', 'orange', 20 );

  4. INSERT INTO products VALUES( 4, 'Fukuoka melon', 'melon', NULL );


SQL 問い合わせの発行と評価結果の確認 (Issue SQL queries and inspect the results)

SQL を用いた問い合わせの実行例を示す.

テーブルの全ての行の表示 (List all rows of a table)

SELECT * FROM products;

条件を満足する行のみの表示 (List the rows which satisfy a given condition)

SELECT * FROM products WHERE type = 'orange';

SELECT * FROM products WHERE cost > 25; 

SELECT * FROM products WHERE cost > 18;


SQL を用いたテーブル定義と一貫性制約の記述 (Table defintion and integrity constraint specification using SQL)


実体関連図 (Entity Relationship Diagram)

SQL を用いて,requests テーブルを定義し,一貫性制約を記述する. (Define a table 'requests'. Specify integrity constrants of the table using SQL)

次の SQL を入力し,「Execute Query」をクリック (Write the following SQL, and click 'Execute Query').

CREATE TABLE requests (
    id         INTEGER  PRIMARY KEY AUTOINCREMENT 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 ),
    product_id INTEGER  NOT NULL REFERENCES products(id), 
    qty        INTEGER  NOT NULL );  


SQL を用いたテーブルへの行の挿入 (Insert rows into a table using SQL)

次のような requests テーブルを作る. (Construct table 'requests')

以下の手順で,SQL を用いて requests テーブルへの行の挿入を行う (Insert rows into table 'requests' using SQL)

  1. INSERT INTO requests VALUES( 1001, 2009, 10, 28, 1, 3 );

  2. INSERT INTO requests VALUES( 1002, 2009, 11, 1, 2, 1 );

  3. INSERT INTO requests VALUES( 1003, 2009, 11, 2, 1, 2 );

  4. INSERT INTO requests VALUES( 1004, 2009, 11, 2, 3, 4 );


SQLite Database Browser を用いたデータのブラウズ (Browse Data using SQLite Database Browser)


SQL 問い合わせの発行と評価結果の確認 (Issue SQL queries and inspect the results)

直積 (Cartesian product)

SQL を使い,複数のテーブルの直積を簡単に得ることができる.

SELECT *
FROM requests, products;

結合問い合わせ (join query)

結合問い合わせは,直積から,条件を満足する行を選んだものになる.

List all 'name', 'price' and 'requests.qty' that satisfy "requests.month = 10"

SELECT products.product_name, products.cost, requests.qty
FROM products, requests
WHERE products.id = requests.product_id
           AND requests.month = 10;


SQL を用いたテーブル定義と一貫性制約の記述 (Table defintion and integrity constraint specification using SQL)


実体関連図 (Entity Relationship Diagram)

SQL を用いて,bundles テーブル,shippings テーブルを定義し,一貫性制約を記述する. (Define two table 'bundles' and 'shippings'. Specify integrity constrants of the table using SQL)

  1. bundles テーブルの定義

    次の SQL を入力し,「Execute Query」をクリック (Write the following SQL, and click 'Execute Query').

    CREATE TABLE bundles (
        id          INTEGER  PRIMARY KEY AUTOINCREMENT NOT NULL,
        request_id  INTEGER  NOT NULL REFERENCES requests(id), 
        qty         INTEGER  NOT NULL, 
        shipping_id INTEGER  NOT NULL REFERENCES shippings(id) ); 
    

  2. shippings テーブルの定義

    次の SQL を入力し,「Execute Query」をクリック (Write the following SQL, and click 'Execute Query').

    CREATE TABLE shippings (
        id    INTEGER  PRIMARY KEY AUTOINCREMENT 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 ) ); 
    

  3. テーブル一覧の表示

    Database Structure」をクリック. テーブル一覧が表示される. products, requests, bundles, shippings が増えていることを確認.

    Click the 'Database Structure'. The list of tables will be displayed. New four tables products, requests, bundles and shippings appear here.


SQL を用いたテーブルへの行の挿入 (Insert rows into a table using SQL)

テーブル間の関係

  • bundles テーブル
    1. INSERT INTO bundles VALUES( 1, 1001, 2, 101 );

    2. INSERT INTO bundles VALUES( 2, 1001, 1, 102 );

    3. INSERT INTO bundles VALUES( 3, 1002, 1, 103 );

    4. INSERT INTO bundles VALUES( 4, 1003, 2, 104 );

    5. INSERT INTO bundles VALUES( 5, 1004, 4, 104 );

  • shippings テーブル
    1. INSERT INTO shippings VALUES( 101, 2009, 10, 28 );

    2. INSERT INTO shippings VALUES( 102, 2009, 10, 31 );

    3. INSERT INTO shippings VALUES( 103, 2009, 11, 1 );

    4. INSERT INTO shippings VALUES( 104, 2009, 11, 2 );


    SQLite Database Browser を用いたデータのブラウズ (Browse Data using SQLite Database Browser)


    SQL 問い合わせの発行と評価結果の確認 (Issue SQL queries and inspect the results)

    直積集合 (Cartesian product)

    SQL を使い,複数のテーブルからの直積を簡単に得ることができる.

    SELECT *
    FROM shippings, bundles, requests
    

    結合問い合わせ (join query)

    結合問い合わせは,直積から,条件を満足する行を選んだものになる.

    List all 'shippings.month', 'shiping.day' and 'bundles.qty' that satisfy "requests.month = 11"

    SELECT shippings.month, shippings.day, bundles.qty
    FROM shippings, bundles, requests
    WHERE requests.id = bundles.request_id
               AND shippings.id = bundles.shipping_id 
               AND requests.month = 11;