Unformat.online
More tools
Clean Text
Strip smart quotes, zero-width characters, non-breaking spaces, and invisible Unicode from any pasted text.
Markdown Viewer
Live split-view editor and renderer — edit on the left, preview on the right.
Text Diff Checker
Compare two texts, JSON payloads, or config files and see exactly what changed, line by line.
Log File Viewer
Open multi-gigabyte log files instantly — chunked indexing and virtual scrolling handle 10GB+ files without freezing your tab.
FileSQL
Drop a CSV or JSON file and query it with SQL instantly — no upload, no server.
Format SQL
Format SQL for MySQL, PostgreSQL, BigQuery, T-SQL, and more — uppercase keywords, proper indentation.
Schema Visualizer
Paste CREATE TABLE statements and get an ER diagram instantly — tables, columns, keys, and foreign-key relationships.
Format JSON
Prettify or minify JSON. Auto-fixes single quotes, trailing commas, and unquoted keys.
Format YAML
Format and validate YAML. Catches indentation errors in Kubernetes, Docker Compose, and GitHub Actions files.
Format XML
Indent and pretty-print XML. Works with SOAP, RSS, Maven POM, Android manifests, and SVG.
JWT Debugger
Decode JWTs instantly — view all claims, check expiry, and see the algorithm. Token never leaves your browser.
Shredder
Remove EXIF, GPS, and author metadata from images and PDFs. Redact secrets from text and log files.
SSL Certificate Checker
Check any domain's SSL/TLS certificate — expiry, issuer, and Subject Alternative Names.
CronScope
Paste a cron schedule and see every run on a 12-month calendar. Never misread a cron expression again.
Regex Tester
Test regex patterns against sample text with live-highlighted matches, or pick from a library of ready-made patterns — no regex knowledge required.
Base64
Encode text or files to Base64, or decode Base64 strings and preview images inline.
URL Encode / Decode
Encode URLs or decode percent-encoded strings like %20, %3D, %26 — instantly.
UUID Generator
Bulk-generate cryptographically random v4 UUIDs using crypto.randomUUID(). Copy one or all at once.

SQL Schema Visualizer

Turn CREATE TABLE statements into an ER diagram. Paste a schema, a migration file, or a whole database dump — it is parsed and drawn entirely in your browser, so nothing is ever uploaded.

Standard SQL

Supported SQL dialects

PostgreSQL

SERIAL, arrays, JSONB, schema-qualified names, pg_dump output

MySQL / MariaDB

Backtick identifiers, AUTO_INCREMENT, ENGINE clauses, mysqldump output

SQL Server (T-SQL)

Bracketed names, IDENTITY, GO batches, PRIMARY KEY CLUSTERED

SQLite

Typeless columns, AUTOINCREMENT, PRAGMA statements

BigQuery

Backtick project.dataset.table names, STRUCT and ARRAY types

Standard SQL

ANSI CREATE TABLE, table constraints, ALTER TABLE ADD CONSTRAINT

SQL to ER Diagram Generator

An entity relationship diagram is the fastest way to understand an unfamiliar database. Reading a thousand-line schema file top to bottom tells you what the tables are; a diagram tells you how they fit together. This tool builds one directly from the DDL you already have.

  1. Paste your DDL into the editor, or load one of the built-in samples.
  2. The dialect is detected automatically — override it with the dropdown if your schema uses ambiguous syntax.
  3. The diagram appears immediately. Toggle Columns and Types to control detail, or switch to a left-to-right layout for wide schemas.
  4. Export as SVG or PNG, or copy the Mermaid source to embed the diagram in your own docs.

What the relationship symbols mean

Cardinality is inferred from your constraints rather than guessed from column names, so the diagram reflects what the database actually enforces.

||--o{
One to many. The foreign key is NOT NULL, so every child has exactly one parent.
|o--o{
Optional to many. The foreign key is nullable, so a child may have no parent.
||--o|
One to at most one. The foreign key is UNIQUE — a one-to-one relationship.
Solid line
Identifying: the foreign key is part of the child's primary key (a junction table).
Dashed line
Non-identifying: the foreign key is an ordinary column.

One case is deliberately never drawn: “one or more”. Whether a parent row must have at least one child is application logic, not something a schema can state, so asserting it would make the diagram lie.

Privacy and schema security

A database schema is internal intellectual property. Table names, column names, and the relationships between them describe how a business works — which is why pasting one into a tool that processes it server-side is often a policy violation, and why most online ER diagram tools require an account before they will show you anything.

This tool has no account, no upload, and no backend. The parser and the renderer are both JavaScript running on your machine. You can verify it: open your browser's network tab, paste a schema, and watch the diagram appear without a single request. Disconnect from the internet after the page loads and it still works.

The only feature that puts your schema anywhere else is the optional Share link, which encodes the DDL into the URL fragment. It never generates anything until you confirm, and it is described in full in our privacy policy.

Frequently asked questions

Is my database schema uploaded anywhere?

No. The DDL is tokenized, parsed, and rendered entirely by JavaScript running in your browser. There is no API call and no server round trip, so you can safely paste an internal production schema. The one exception is the optional Share link feature, which encodes your DDL into the URL fragment — it is opt-in, warns you before creating anything, and is documented in our privacy policy.

What SQL dialects are supported?

PostgreSQL, MySQL/MariaDB, SQL Server (T-SQL), SQLite, BigQuery, and standard ANSI SQL. The dialect is auto-detected from the text, and you can override it. Real pg_dump --schema-only, mysqldump --no-data, and SSMS Generate Scripts output all work directly.

Can I paste a whole migration file or database dump?

Yes. Statements that are not table definitions — CREATE INDEX, CREATE VIEW, INSERT, PRAGMA, GRANT, and so on — are counted and skipped silently rather than reported as errors. Only CREATE TABLE and ALTER TABLE contribute to the diagram.

What happens if part of my DDL is malformed?

Each statement is parsed independently, so one broken table does not stop the rest. The problem is reported with its line number in the issues panel, and clicking it jumps to that line in the editor. Unrecognized vendor-specific column modifiers are skipped rather than treated as errors.

How are the relationship symbols decided?

From the constraints themselves. A NOT NULL foreign key means exactly one parent; a nullable one means zero or one. If the foreign key columns are covered by a UNIQUE constraint or form the child's entire primary key, the relationship is one-to-one. A solid line means the foreign key is part of the child's primary key. We never draw 'one or more', because DDL cannot express that.

Can I export the diagram?

Yes — download it as SVG or PNG (at 1x, 2x, or 3x, with a light, dark, or transparent background), copy the generated Mermaid erDiagram source to paste into GitHub, Notion, or Obsidian, or copy the parsed schema as JSON for use in other tooling.

Why do very large schemas show only some tables?

Automatic ER layout becomes unreadable past roughly 60 tables, so the diagram shows the connected tables first and offers a 'Render all anyway' button. Turning off Columns also helps a lot — a relationship-only diagram stays legible far longer.

Related tools