SQL 入門演習

Sqliteman で既存のデータベースを開く

作成済みのデータベースファイルは,次の手順で開く. (Open an existing database file)

  1. Sqliteman を起動する
  2. 「File」→ 「Open」
  3. データベースファイルを開く

    * Ubuntu での実行例

    データベースファイル /home/ubuntuuser/mydb を選び, 「開く」をクリック (Click '開く' after choosing the database file "/home/ubuntuuser/mydb")

    * Windows での実行例

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

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

この演習では products テーブルを使う. products テーブルが定義済みの場合は,この節の操作は不要である.

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

リレーショナル・スキーマ (relational schema): products( id, product_name, type, cost, created_at )
  1. products テーブルの定義 (Define a table)

    次の SQL を入力し,「Run SQL」のアイコンをクリック (Write the following SQL, and click "Run SQL" icon).

    create table products (
        id            INTEGER  PRIMARY KEY autoincrement not null,
        product_name  TEXT     UNIQUE not null,
        type          TEXT     not null,
        cost          real,
        created_at    DATETIME not null );
    

    * 「SQL Editor」のウインドウに SQL プログラムを書く. (You can write down SQL program(s) in the 'SQL Editor' window.)

  2. コンソールの確認 (Inspect console)

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

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

次の操作により,演習用のデータ(1000 行)を products テーブルに格納する.

  1. Sqliteman で,products を右クリック (right click) し,「Populate Table...」を選ぶ.
  2. Number of Rows to Populate に「1000」を設定, cost の行を「Random Number」に設定し, 「Populate」をクリック
  3. 「Close」をクリック

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

次の SQL を入力し,「Run SQL」のアイコンをクリック

SELECT * FROM products WHERE id = 123;

LIKE と % の組み合わせ: 文字列のパターンマッチ

「%」は 0 文字以上の任意の文字列にマッチする. 次の SQL では,type の値が「AA」を含む行が表示される. SQLite 3 の LIKE は,アルファベットの大文字と小文字を区別しないため, 「aa」,「aA」,「Aa」,「AA」のいずれもマッチする.

次の SQL を入力し,「Run SQL」のアイコンをクリック

SELECT * FROM products WHERE type LIKE '%AA%';

ORDER BY: ソート

ORDER BY は,指定した属性の値で行を並べ替える.

次の SQL を入力し,「Run SQL」のアイコンをクリック

SELECT * FROM products ORDER BY cost;

GROUP BY と COUNT の組み合わせ: グループごとの数え上げ

GROUP BY は,指定した属性の値が同じ行をグループにまとめる. COUNT は,グループごとの行数を求める.

次の SQL を入力し,「Run SQL」のアイコンをクリック

SELECT type, COUNT(*) FROM products GROUP BY type;

GROUP BY と COUNT と HAVING の組み合わせ: グループの絞り込み

HAVING は,グループに対する条件を指定する. 次の SQL では,行数が 5 以上のグループのみが表示される.

次の SQL を入力し,「Run SQL」のアイコンをクリック

SELECT type, COUNT(*) FROM products GROUP BY type HAVING COUNT(*) >= 5;