本文へスキップ
可視化

SQL to ER図 変換

CREATE TABLE 文をパースして、Mermaid 形式の ER 図を自動生成します。機密性の高い DB 設計をブラウザ完結で安全に可視化できます。

ガイド: 使い方と特徴

  • テキストエリアにSQLの `CREATE TABLE` 文を入力または貼り付けます。
  • 「実行」ボタンをクリックすると、Mermaid形式のER図が生成・表示されます。
  • テーブル間のリレーション(外部キー)は `FOREIGN KEY` または `REFERENCES` 句から自動的に抽出されます。
  • 生成されたMermaidコードは「Mermaidコードをコピー」ボタンで保存できます。
  • 機密性の高いスキーマ情報も、ブラウザ内のみで処理されるため安全に利用可能です。

サンプル: 変換の例

ユーザーと投稿(1対多)

入力例

CREATE TABLE users (
  id INT PRIMARY KEY,
  name VARCHAR(50)
);

CREATE TABLE posts (
  id INT PRIMARY KEY,
  user_id INT REFERENCES users(id),
  title VARCHAR(100)
);

出力例

erDiagram
    users {
        INT id PK
        VARCHAR(50) name
    }
    posts {
        INT id PK
        INT user_id
        VARCHAR(100) title
    }

    posts }|--|| users : "user_id -> id"

FAQ: よくある質問

  • すべてのSQL方言に対応していますか?

    標準的なSQLのCREATE TABLE構文をサポートしていますが、特定の中間パースロジックを使用しているため、極端に特殊なプロプライエタリな構文は正しく解釈されない場合があります。
  • 読み込んだデータが外部に送信されることはありますか?

    いいえ。パースおよび可視化処理はすべてブラウザ上のJavaScriptで完結しており、入力したSQLがサーバーに送信されることはありません。
  • リレーションが表示されない場合はどうすればよいですか?

    FOREIGN KEY句またはREFERENCES句が正しく記述されているか確認してください。現在、外部キー制約に基づいたリレーション抽出を行っています。

使いどころ: 主な使い道

  • 既存データベースのドキュメント作成

    SQLファイルを読み込ませるだけで、現在のテーブル構成をさっと可視化して共有・文書化できます。

  • 新規設計時のスキーマ確認

    DDLを書きながら、意図した通りのリレーションが構築されているか視覚的にセルフチェックできます。

  • 開発チーム内での共有

    大規模なDBドキュメントを作成する前に、特定のサブシステムの構造をMermaid形式でサクッと共有したい時に便利です。

注意点: 利用上の注意

  • 高度なSQL構文の制限

    ストアドプロシージャ、トリガー、複雑なインデックス定義など、CREATE TABLE以外の構文は無視されます。

  • 巨大なテーブル構成

    テーブル数が非常に多い場合(数十個以上)、Mermaidの描画負荷によりブラウザの動作が重くなる場合があります。

  • 構文エラー

    閉じ括弧の不足やスペルミスなど、SQLに明らかな構文エラーがある場合は正しくパースされません。

erDiagram USERS ||--o{ POSTS : "user_id -> id" USERS { int id PK string name } POSTS { int id PK int user_id string title }

SQLからER図(Mermaid)の生成機能について

SQLのDDL文(CREATE TABLE文)から、自動でエンティティ・リレーションシップ図(ER図)を作成し、Mermaid.js形式で出力できるツールです。
データベースの設計を行う際、スキーマ定義から直接視覚的なER図を生成することで、設計レビューや仕様ドキュメントの作成効率が劇的に向上します。

ツールの仕組みとプライバシー

本ツールはブラウザ上のJavaScriptで完結して動作します。入力されたSQL文(CREATE TABLEやFOREIGN KEY情報等)は、外部サーバーに一切送信されません。
そのため、機密性の高いシステムの中核となるデータベース定義情報を扱う場合でも、情報漏洩のリスクなく安全にご利用いただけます。

ER図化すると見つけやすい問題

テーブル数が増えると、外部キーの向き、NULL許可、命名規則、履歴テーブルとの関係がSQLだけでは追いづらくなります。DDLからER図を作ることで、注文と明細、ユーザーと権限、中間テーブル、マスターデータの参照関係を視覚的に確認できます。
新規開発では設計レビューの資料として、既存システムでは引き継ぎやリファクタリング前の構造把握として役立ちます。Mermaid形式で出力できるため、README、設計書、社内Wikiに貼り付けて継続的に更新しやすい点も実務向きです。

使う前に整えておきたいDDL

より正確な図にするには、CREATE TABLE 文だけでなく、主キー、外部キー、ユニーク制約、カラム型が分かる状態で入力するのがおすすめです。DBからエクスポートしたDDLに不要なコメントや環境依存のオプションが多い場合は、先に最小限のスキーマ定義へ整理しておくと、レビューしやすいER図になります。

おすすめリソース

このセクションにはアフィリエイトリンクが含まれる場合があります。リンク経由で購入すると、追加費用なしでDevToolKits.appが紹介料を受け取ることがあります。

このツールの関連記事

ツール紹介
2026-02-19

SQL DDLからER図を自動生成する方法|CREATE TABLEを可視化

CREATE TABLEのSQL DDLからMermaid ER図を自動生成する仕組みを解説。PRIMARY KEY/FOREIGN KEYの抽出ルール、カラム型の扱い、対応していないDDLパターンまで実例付きで整理します。

ツール紹介
2026-08-03

テーブル設計からCREATE TABLE文を自動生成する仕組み|DDLビルダー

テーブルをビジュアルに設計してCREATE TABLE文とER図を生成するDDLビルダーの実装を解説。MySQL/PostgreSQL/SQLiteの型変換ルール、JSONサンプルからのカラム推論アルゴリズムまで実例付きで整理します。

活用事例
2026-08-04

CREATE TABLE リファレンス|MySQL・PostgreSQL・SQLiteの型と制約の違い

CREATE TABLE文(DDL)の書き方を3データベース横断の早見表で整理。型対応表、自動採番(AUTO_INCREMENT / IDENTITY / rowid)の方言差、外部キーのON DELETE挙動、CHECK制約が無視される罠まで実例付きで解説します。

活用事例
2026-08-06

SQLの句の評価順リファレンス|WHEREでSELECTの別名が使えない理由

SQLは書いた順に実行されません。論理的な評価順(FROM→WHERE→GROUP BY→HAVING→SELECT→ORDER BY→LIMIT)を軸に、別名がWHEREで使えない理由、WHEREとHAVINGの使い分け、ONLY_FULL_GROUP_BY、COUNT(*)とCOUNT(列)の差、LEFT JOIN+WHEREの罠を実例で整理します。

活用事例
2026-07-14

MermaidのER図(erDiagram)記法リファレンス|リレーション記号一覧と実例

Mermaid erDiagramの書き方を網羅解説。カラスの足記法の記号一覧表、1対多・多対多の書き分け、属性・PK/FKの定義、実務で使えるEC設計の完全サンプルまで。

最新記事

活用事例
2026-08-07

curlコマンドのオプション早見表|-X -H -d の意味と落とし穴

curlの主要オプションを早見表で整理。-X と -d の関係、-d と --data-raw の違い、@ で始まる値がファイル読み込みになる罠、シングルクォートとダブルクォートの使い分け、-L や -k を安易に付けない理由まで実例で解説します。

ツール紹介
2026-08-06

JSON SchemaとZodを相互変換する仕組み|requiredと.optional()の対応

JSON SchemaからZodスキーマを生成し、Zodのコードから逆にJSON Schemaを書き出す双方向変換ツールの実装を解説。requiredと.optional()で既定値が逆転している問題、formatや制約の対応表、コードを実行せずに解析する方法まで整理します。

活用事例
2026-08-06

SQLの句の評価順リファレンス|WHEREでSELECTの別名が使えない理由

SQLは書いた順に実行されません。論理的な評価順(FROM→WHERE→GROUP BY→HAVING→SELECT→ORDER BY→LIMIT)を軸に、別名がWHEREで使えない理由、WHEREとHAVINGの使い分け、ONLY_FULL_GROUP_BY、COUNT(*)とCOUNT(列)の差、LEFT JOIN+WHEREの罠を実例で整理します。

活用事例
2026-08-06

unified diff形式の読み方リファレンス|@@ の数字とgit diffの出力

git diffが出力するunified diff形式の読み方を整理。@@ -12,7 +12,9 @@ の4つの数字の意味、コンテキスト行、空白だけの変更が行全体の置換に見える理由、\ No newline at end of file、マージ時の @@@、リネーム検出の similarity index までを実例で解説します。

活用事例
2026-08-06

UTC⇄JST変換リファレンス|時差9時間の早見表とタイムゾーン事故の防ぎ方

UTCとJSTの変換を早見表で整理。ISO 8601のZと+09:00の意味、JavaScriptの日付パースでズレる条件、MySQL/PostgreSQLのタイムゾーン挙動、GitHub ActionsのcronがUTCで動く罠まで実例付きで解説します。

活用事例
2026-08-04

CREATE TABLE リファレンス|MySQL・PostgreSQL・SQLiteの型と制約の違い

CREATE TABLE文(DDL)の書き方を3データベース横断の早見表で整理。型対応表、自動採番(AUTO_INCREMENT / IDENTITY / rowid)の方言差、外部キーのON DELETE挙動、CHECK制約が無視される罠まで実例付きで解説します。

広告

広告