Erdmates Logo
Erdmates
ブログ一覧へ
SQLDDLCREATE TABLEデータベース

SQL CREATE TABLE完全ガイド:実践例付き

SQL DDLの核心であるCREATE TABLE文法を実践例とともに完全に理解します。

2026年2月5日8 分で読めます

SQL DDLとCREATE TABLE

SQLはDDL(Data Definition Language)、DML(Data Manipulation Language)、DCL(Data Control Language)に大別されます。その中でDDLの基本がテーブルを作成するCREATE TABLE文です。

基本構文

CREATE TABLE テーブル名 (
  カラム名 データ型 [制約],
  ...
  [テーブルレベルの制約]
);

よく使うデータ型

  • VARCHAR(n): 可変長文字列
  • TEXT: 大量テキスト
  • INTEGER: 整数
  • DECIMAL(p, s): 精密な小数(金額に使用)
  • TIMESTAMPTZ: タイムゾーン付きタイムスタンプ
  • UUID: 一意識別子
  • BOOLEAN: 真偽値

主要な制約

CREATE TABLE users (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  email VARCHAR(255) NOT NULL UNIQUE,
  name VARCHAR(100) NOT NULL,
  status VARCHAR(20) DEFAULT 'active',
  created_at TIMESTAMPTZ DEFAULT NOW()
);

外部キー

CREATE TABLE orders (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  user_id UUID NOT NULL,
  total_amount DECIMAL(15, 2) NOT NULL,

  CONSTRAINT fk_orders_user
    FOREIGN KEY (user_id)
    REFERENCES users(id)
    ON DELETE RESTRICT
);

実践例:ブログシステム

CREATE TABLE posts (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  author_id UUID NOT NULL,
  title VARCHAR(300) NOT NULL,
  content TEXT NOT NULL,
  status VARCHAR(20) DEFAULT 'draft'
    CHECK (status IN ('draft', 'published', 'archived')),
  created_at TIMESTAMPTZ DEFAULT NOW(),
  updated_at TIMESTAMPTZ DEFAULT NOW(),

  FOREIGN KEY (author_id) REFERENCES users(id) ON DELETE RESTRICT
);

-- インデックスを追加
CREATE INDEX idx_posts_author ON posts(author_id);
CREATE INDEX idx_posts_status ON posts(status);

ERDからSQLを自動生成

Erdmatesを使えば、視覚的にERDを設計した後、PostgreSQL、MySQL、SQLiteなど様々なデータベース方言に合ったCREATE TABLE SQLをワンクリックで自動生成できます。

まとめ

CREATE TABLEはデータベース開発の第一歩です。制約を活用してデータ整合性を保証し、命名規則を一貫して維持することが良いスキーマの核心です。

Erdmatesで今すぐ始めましょう

AI搭載ERDエディタでデータベース設計を始めましょう。無料でご利用いただけます。

無料デモを試す無料で始める

関連記事

bigint・UUID v4・UUID v7:主キーの選び方(PostgreSQL 18 の uuidv7() 対応)

bigint・UUID v4・UUID v7 の主キーの長所と短所を比べ、PostgreSQL 18 に入った uuidv7() で変わった点と、状況別の選び方を整理します。

AIエージェントが読むデータベース:MCP時代のスキーマ設計原則

AIエージェントがMCPを通じてデータベースに直接接続するケースが増えています。エージェントがスキーマを誤って解釈しないように名前・コメント・制約を設計し、権限を安全に分ける方法を整理します。

PostgreSQL 19プレビュー:スキーマ設計と運用に影響する変更点(ベータ4時点)

正式リリースを控えたPostgreSQL 19の変更点のうち、テーブル設計・マイグレーション・運用に直接影響するものを公式リリースノート(ベータ4)に基づいて整理します。ベータで取り下げられた機能や、アップグレード前に確認すべき動作の変更もあわせて見ていきます。

Erdmates Logo
Erdmates

自然言語でデータベースを設計し、AI駆動ERDエディターでチームとリアルタイムでコラボレーション。

サービス

  • 機能紹介
  • 料金プラン
  • デモ
  • SQL→ERD変換

リソース

  • ブログ
  • ヘルプ
  • お問い合わせ

法的事項

  • 利用規約
  • プライバシーポリシー
  • 第三者提供
会社名: Produx|代表者: 최정회
住所: 강원특별자치도 원주시 솔우물2길 4-1 (무실동)
メール: master@erdmates.com
個人情報管理責任者: 최정회|ホスティングサービス提供者: Amazon Web Services

© 2026 Produx. All rights reserved.