CREATE TABLE の使い方
表を作る
書き方
CREATE TABLE 表 (列 型 [制約], …);
型は INTEGER・VARCHAR(n)・NUMERIC(p,s)・DATE・BOOLEAN など。CREATE TABLE … AS SELECT で結果から作ることもできます。
よく使うオプション
| オプション | 意味 |
|---|---|
INTEGER / BIGINT | 整数 |
VARCHAR(n) / TEXT | 文字列(n 文字まで / 長さの決まり無し) |
NUMERIC(p, s) | けたの決まった数(お金など。全体 p けた、小数 s けた) |
DATE / TIMESTAMP | 日付 / 日時 |
BOOLEAN | 真か偽か |
IF NOT EXISTS | 同じ名前の表があれば何もしない(PostgreSQL・MySQL) |
例
CREATE TABLE products (
id INTEGER PRIMARY KEY,
name VARCHAR(100) NOT NULL,
price NUMERIC(10, 0) DEFAULT 0,
released_on DATE
);CREATE TABLE商品の表を作ります。列ごとに名前・型・決まり(制約)を書きます。
CREATE TABLE IF NOT EXISTS memos (id INTEGER PRIMARY KEY, body TEXT);
memos が無いときだけ作ります。何度流しても失敗しない形です。
CREATE TABLE big_orders AS SELECT * FROM orders WHERE total >= 50000;SELECT 18問い合わせの結果から、新しい表を作ります。中身も一緒に写されます。
よくある間違い・注意
- CREATE TABLE … AS SELECT で作った表には、元の表の主キーや制約は写されません。
- お金のような値には、誤差の出る REAL や DOUBLE PRECISION ではなく NUMERIC を使います。
- 型の名前はデータベースで違うことがあります(Oracle は VARCHAR2・NUMBER をよく使います)。
実際に打って練習する
SQL コースの Lv41「表を作る CREATE TABLE」で覚えます。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。
Lv1〜3 は、登録不要・無料で遊べます(それより先はブロンズ以上のプランで遊べます)。