SQL CREATE TABLE構文と例
SQLのCREATE TABLE構文の完全ガイド。カラム定義、データ型、制約、PostgreSQL・MySQL・SQLiteのダイアレクト別の例を解説します。
DDL Commands
詳細な説明
CREATE TABLEの基礎
CREATE TABLE文はデータベースに新しいテーブルを定義します。SQLデータ定義言語(DDL)の基盤であり、ほとんどの開発者が最初に学ぶコマンドです。
基本構文
CREATE TABLE table_name (
column_name data_type [constraints],
...
);
カラム制約
| 制約 | 目的 |
|---|---|
PRIMARY KEY |
各行を一意に識別する |
NOT NULL |
NULL値を防止する |
UNIQUE |
カラム内のすべての値が重複しないことを保証する |
DEFAULT value |
値が提供されない場合のフォールバック値を設定する |
CHECK (condition) |
条件に対してデータを検証する |
REFERENCES table(col) |
外部キー関係を作成する |
ダイアレクトの違い
- PostgreSQLは自動増分整数に
SERIALまたはGENERATED ALWAYS AS IDENTITYを使用し、タイムゾーン対応のタイムスタンプとしてTIMESTAMPTZをサポートします。 - MySQLは
AUTO_INCREMENTを使用し、ENGINEの指定(通常はInnoDB)が必要です。 - SQLiteは
INTEGER PRIMARY KEY AUTOINCREMENTを使用し、ネイティブの日付型がないため日付をTEXTとして保存します。
実践的な例
CREATE TABLE products (
id SERIAL PRIMARY KEY,
name VARCHAR(200) NOT NULL,
price NUMERIC(10, 2) NOT NULL CHECK (price >= 0),
category_id INT REFERENCES categories(id),
created_at TIMESTAMPTZ DEFAULT NOW()
);
CREATE TABLEを完全に理解することは、ここで定義するスキーマに他のすべてのSQL操作が依存するため不可欠です。
ユースケース
ECサイトの商品テーブルや認証システムのユーザーテーブルなど、構築中の機能用に新しいデータベーステーブルを設計・作成する必要がある場合。