Kodokon kodokon.com

リレーショナルモデル:テーブル、行、列

データベースが情報をテーブルにどう整理するかを知り、SQLiteで最初のテーブルを作成しましょう。

8 分 · 3 問

このレッスンを Kodokon で開く

データベースとは、コンピューターの電源を切っても、情報を整理された形で永続的に保存するソフトウェアです。最も普及しているモデルがリレーショナルモデルです。データはテーブルに配置されます。テーブルは表計算シートのようなものです。各はプロパティ(タイトル、価格など)を記述し、各は完全な一項目(たとえば特定の一冊の本)を表します。SQL(Structured Query Language、構造化問い合わせ言語)は、これらのテーブルを作成し、その中身を問い合わせるために使う言語です。データベースに送る各命令はクエリと呼ばれます。

SQL
CREATE TABLE books (
  id INTEGER PRIMARY KEY,
  title TEXT,
  author TEXT,
  genre TEXT,
  year INTEGER,
  price REAL
);
サンプルのテーブル:小さな図書館

このクエリを分解してみましょう。CREATE TABLE booksbooksという名前のテーブルを作成します。丸括弧の中では、各行が列を宣言します。名前、続いてその、つまり受け入れるデータの種類です。SQLiteでは、主な型はINTEGER(整数)、REAL(小数)、TEXT(テキスト)、そしてBLOB(画像などのバイナリデータ)です。値がないことはNULLと書きます。最後に、PRIMARY KEY主キーを指定します。これは各行を一意に識別する値を持つ列で、案件番号のようなものです。

SQL
INSERT INTO books (id, title, author, genre, year, price)
VALUES
(1, 'Dune', 'Herbert', 'sf', 1965, 9.9),
(2, 'Fondation', 'Asimov', 'sf', 1951, 8.5),
(3, '1984', 'Orwell', 'sf', 1949, 7.2),
(4, 'Croc-Blanc', 'London', 'aventure', 1906, 5.5),
(5, 'Les Robots', 'Asimov', 'sf', 1950, 7.9),
(6, 'Deux ans de vacances', 'Verne', 'aventure', 1888, 6.9),
(7, 'Le Petit Prince', 'Saint-Exupery', 'conte', 1943, 6.5);
このブロックをCREATE TABLEのすぐあとにコピー&ペーストしましょう

INSERT INTOクエリはテーブルに行を追加します。最後のレッスンで詳しく扱います。テキストの値は二重引用符ではなく、必ずシングルクォート'Dune')で囲むことに注目してください。では、読み取りクエリSELECTで、すべてがそろっているか確認しましょう。

SQL
SELECT * FROM books;
アスタリスク * は「すべての列」を意味する

7行6列が見えるはずです。最初のデータベースが動きました。このレッスンのCREATE TABLEINSERTスクリプトは大切に取っておきましょう。これ以降のすべてのレッスンは、この同じbooksテーブルに依存します。ブラウザやターミナルを閉じてしまったら、もう一度実行するだけで同じ地点からやり直せます。

理解度チェック

このレッスンの要点をしっかり覚えているか確認しましょう。

  1. テーブルの中で、行は何を表しますか?
    • タイトルや価格などのプロパティ
    • 特定の一冊の本などの完全な一項目
    • 列のデータ型
  2. 6.5のような価格を保存するのに適したSQLiteの型はどれですか?
    • INTEGER
    • TEXT
    • REAL
    • BLOB
  3. id列のPRIMARY KEY句の目的は何ですか?
    • 行を自動的にアルファベット順に並べ替えるため
    • 各行を一意に識別するため
    • 負の数を禁止するため