導入
まずは自分でテーブルを作る基本、CREATE TABLE から。「どんな列を、どんな種類の値で持つか」を決めるのが設計の第一歩です。
説明
テーブルは CREATE TABLE で作ります。「テーブル名」と、「列の名前+データ型」の並びを指定します。
CREATE TABLE suppliers (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
phone TEXT
);
各列に付いている INTEGER TEXT などがデータ型です。その列にどんな種類の値が入るかを表明します。SQLite の代表的な型は次の5つです。
| 型 | 用途 | 例 |
|---|---|---|
INTEGER | 整数 | 年齢、個数、ID |
REAL | 小数(浮動小数点) | 価格、割合 |
TEXT | 文字列 | 名前、住所、日付文字列 |
BLOB | バイナリ(画像など) | ファイルデータ |
NULL | 値が無い状態 | 未入力の欄 |
型を決めることには2つの意味があります。ひとつは「その列に何が入るかを読み手に伝える」設計上の約束。もうひとつは「変な値を弾く」歯止めです。
flowchart LR
D["データ型を宣言する"] --> M1["意図が伝わる<br/>age は数字、name は文字列"]
D --> M2["不正値を防ぐ<br/>数値列に文字が入りにくい"]
D --> M3["適切に保存・比較できる<br/>数値は数値として大小比較"]
SQLite は型に比較的ゆるく、宣言と違う値も格納できてしまいます(型アフィニティという仕組み)。とはいえ設計として型を書くことは重要です。MySQL や PostgreSQL では型はもっと厳密で、VARCHAR(50)(最大50文字)・DATE・BOOLEAN・TIMESTAMP など種類も豊富です。
作ったテーブルは最初は空です。INSERT で行を追加し、SELECT で確認できます。
INSERT INTO suppliers (id, name, phone) VALUES (1, '山田商事', '03-1234-5678');
SELECT * FROM suppliers;
やってみよう
初期表示の CREATE TABLE suppliers ... を実行し、「返却行なし」と出れば成功です。続けて上の INSERT と SELECT を実行し、作ったテーブルにデータが入ることを確認しましょう。
演習
次の3つの列を持つ books テーブルを作ってください。id(整数・主キー)、title(文字列・NOT NULL)、price(整数)。
ヒント1を見る
CREATE TABLE books ( ... ); の中に、列名 型 をカンマ区切りで3つ並べます。
ヒント2を見る
CREATE TABLE books (id INTEGER PRIMARY KEY, title TEXT NOT NULL, price INTEGER);