The problem with unformatted SQL
SQL written on a single line is nearly impossible to debug. Long WHERE clauses, nested subqueries, and multi-table joins all become readable the moment you add proper indentation and line breaks.
Format SQL online with HTMLToolz
The SQL Formatter reformats SQL queries into clean, consistently-indented SQL — in your browser, with no sign-up required.
- Handles
SELECT,INSERT,UPDATE,DELETE,CREATE,ALTER - Correctly indents subqueries and CTEs (
WITHclauses) - Uppercases keywords for readability
- Supports MySQL, PostgreSQL, SQLite, SQL Server syntax
How to use the SQL Formatter
- Open htmltoolz.com/tools/sql-formatter
- Paste your SQL — minified, one-liner, or already partially formatted
- Click Format SQL
- Copy the result
Before and after
Before:
select u.id,u.email,count(o.id) as orders from users u left join orders o on o.user_id=u.id where u.created_at > '2025-01-01' group by u.id having orders > 0 order by orders desc limit 50
After formatting:
SELECT
u.id,
u.email,
COUNT(o.id) AS orders
FROM users u
LEFT JOIN orders o
ON o.user_id = u.id
WHERE u.created_at > '2025-01-01'
GROUP BY u.id
HAVING orders > 0
ORDER BY orders DESC
LIMIT 50
When SQL formatting saves you time
Reading query logs
Database slow-query logs and EXPLAIN output compress queries onto one line. Paste them into the formatter before trying to understand the query plan.
Code review
Formatted SQL in pull requests makes reviewer intent obvious — WHERE conditions and JOIN types stand out immediately.
ORM-generated queries
Queries logged by ORMs (Django ORM, ActiveRecord, Eloquent, SQLAlchemy) are often a single line. Format them to understand what your ORM is actually doing.
Related tools
- JSON Formatter — for API response payloads
- JSON Diff — compare two JSON structures
