Turn unreadable queries into something you can actually debug
select u.id,u.name,o.total from users u inner join orders o on u.id=o.user_id where u.active=true and o.total>100 order by o.total desc limit 10
Good luck finding the bug in that. Now try:
SELECT u.id, u.name, o.total
FROM users u
INNER JOIN orders o
ON u.id = o.user_id
WHERE u.active = true
AND o.total > 100
ORDER BY o.total DESC
LIMIT 10
Same query. One is debuggable. Paste the mess, click format, get the clean version. Keywords get uppercased, each clause gets its own line, sub-clauses like AND and OR are indented under their parent.
When you’ll reach for this
Slow query analysis. Your monitoring tool flagged a query that takes 3 seconds. It’s logged as a single line. Formatting it is the first step to understanding which join or subquery is the bottleneck.
Code review. SQL embedded in application code or a migration file is much easier to review when formatted consistently.
Database logs. Server logs capture queries as single lines. Formatting reveals the actual structure.
Learning. If you’re studying SQL, seeing the clauses laid out vertically makes the relationships between SELECT, FROM, WHERE, and JOIN click faster.
What the formatter does
Uppercases keywords: SELECT, FROM, WHERE, JOIN, ORDER BY, GROUP BY, HAVING, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, and many more.
Puts major clauses on separate lines. Indents conditions (AND, OR) under WHERE. Handles subqueries in parentheses with proper nesting.
Works across dialects, the standard syntax common to MySQL, PostgreSQL, SQLite, SQL Server, and Oracle. Dialect-specific extensions may work but aren’t specifically optimized.
The conventions worth following
Uppercase keywords, lowercase identifiers. SELECT u.name FROM users u is instantly scannable. You can tell keywords from table names at a glance.
One clause per line. SELECT, FROM, WHERE, JOIN, ORDER BY, each starts a new line.
Indent conditions. AND and OR under WHERE should be indented one level. Makes complex filter logic readable.
FAQ
Does it validate SQL?
No, the formatter only handles visual layout. It won’t catch missing tables, invalid column references, or syntax errors. Use your database’s query analyzer for that.
Subqueries?
Formatted with the same rules, properly nested inside their parentheses.
Which dialects?
Standard SQL syntax works across MySQL, PostgreSQL, SQLite, SQL Server, and Oracle. Dialect-specific features may work but aren’t specifically handled.
Client-side?
Yes, your queries never leave your browser. Safe for queries with sensitive table names or business logic.