SQL formatting (also called beautifying or pretty-printing) takes compact or messy SQL queries and transforms them into a readable structure with proper indentation, line breaks, and keyword alignment. For example, this compact query:
select id, name, category from tools where type = 'spreadsheet' order by popularity desc limit 10;
becomes:
SELECT
id,
name,
category
FROM
tools
WHERE
type = 'spreadsheet'
ORDER BY
popularity DESC
LIMIT
10;The keyword case selector lets you control how SQL keywords (SELECT, FROM, WHERE, etc.) appear in the formatted output. You have three options:
UPPERCASE (default) — traditional SQL style:
SELECT name, vendor FROM tools WHERE category = 'spreadsheet';
lowercase — modern, code-friendly style:
select name, vendor from tools where category = 'spreadsheet';
Preserve — keeps your original casing:
Select name, vendor From tools Where category = 'spreadsheet';
Tip: Changing the keyword case after formatting will automatically re-format the output without needing to click the Format button again.
The formatter will still attempt to format your SQL even if it contains syntax errors. However, you'll see a warning message indicating that your query was formatted but contains syntax issues. This helps you see a cleaner version of your code while still being aware that corrections are needed.
No. Formatting only changes whitespace, indentation, and keyword casing. Your actual query logic: table names, column names, conditions, values, and operations remain exactly the same. The formatted query will execute identically to the original.
Yes. The formatter handles complex SQL including JOINs, subqueries, CTEs (Common Table Expressions), aggregate functions, GROUP BY, HAVING, and nested conditions. Each clause is properly indented for readability.
SELECT
t.id,
t.name,
c.category_name,
COUNT(f.id) AS total_features,
AVG(r.rating) AS avg_rating
FROM
tools t
LEFT JOIN categories c ON t.category_id = c.id
LEFT JOIN features f ON t.id = f.tool_id
LEFT JOIN reviews r ON t.id = r.tool_id
WHERE
t.type IN ('spreadsheet', 'database', 'converter')
AND t.is_active = true
GROUP BY
t.id,
t.name,
c.category_name
HAVING
COUNT(f.id) >= 5
ORDER BY
avg_rating DESC
LIMIT
20;The formatter uses standard SQL formatting that works well with most database systems including MySQL, PostgreSQL, SQLite, SQL Server, and Oracle. While dialect-specific syntax may vary, the formatter handles common SQL patterns across all major databases.