What is an SQL linter?
An SQL linter analyzes SQL text for code quality issues such as unsafe mutations, poor style, readability problems, and common anti-patterns. It focuses on maintainability and best practices rather than executing queries.
Lint SQL for style, safety, and best practices with configurable rules and estimated quality scores.
Use the Validator to catch syntax errors, the Linter to improve code quality, and the Formatter to prettify valid SQL. Together they form a practical pre-flight workflow before running scripts against a database.
-- Before (lint flags: SELECT *, comma join, DELETE without WHERE) select * from users u, orders o delete from logs -- After team review SELECT u.id, u.email, o.total FROM users AS u INNER JOIN orders AS o ON u.id = o.user_id; DELETE FROM logs WHERE created_at < NOW() - INTERVAL '90 days';
An SQL linter analyzes SQL text for code quality issues such as unsafe mutations, poor style, readability problems, and common anti-patterns. It focuses on maintainability and best practices rather than executing queries.
A syntax validator checks whether SQL can be parsed for a dialect. A linter checks style, safety heuristics, and maintainability rules. Valid SQL can still have lint issues.
A formatter rearranges whitespace and casing for readability. A linter reports issues and recommendations; it does not change your SQL unless you choose to apply style fixes via the formatter handoff.
No. It never connects to a database and never runs your queries. Linting is static analysis only.
No. All linting runs in your browser. Your SQL stays on your device.
PostgreSQL, MySQL, MariaDB, SQLite, SQL Server (T-SQL), Oracle PL/SQL, BigQuery, Snowflake, Redshift, DuckDB, DB2, Trino, Spark, Hive, ClickHouse, and generic SQL.
No for teams needing full SQLFluff rule parity, Jinja/dbt templating, or native CI hooks. This tool is a fast browser-side linter for individuals and ad hoc review.
Safety (SELECT *, DELETE/UPDATE without WHERE, DROP/TRUNCATE), style (line length, keyword casing, trailing spaces), readability (nesting depth, long queries), performance heuristics (leading wildcard LIKE, functions in WHERE), and security advisories (dynamic SQL patterns).
Yes. Expand Rule configuration in the results panel to toggle rules. Choosing a preset resets defaults; manual toggles switch to the Custom preset.
Standard (balanced), Strict (more warnings), Relaxed (fewer style nits), and Safety only (dangerous operations and security advisories).
Estimated scores from 0–100 for Safety, Style, Readability, Performance, and Security, plus an Overall score. They are heuristic estimates, not execution-tested metrics.
No. Use Apply style fixes to open the SQL Formatter with your current script if you want formatting changes.
Style-only fixes (indentation, keyword case, spacing) are available through the Formatter handoff. Logic-changing fixes are not applied automatically.
No. Without a schema or database connection, table/column existence cannot be verified.
Partially. Complex procedural blocks may not be fully analyzable. Treat lint results as helpful but not exhaustive for procedural SQL.
Yes. Statements are split on semicolons outside quoted strings and analyzed individually with statement indexes where relevant.
Small and medium scripts lint instantly. Inputs above ~300 KB use a Web Worker. Very large files may slow the browser; multi-gigabyte dumps are not supported in-browser.
Yes. Copy, download TXT, or download JSON reports from the results panel.
Yes. Use Check syntax for the Validator, Apply style fixes for the Formatter, or hand off from other SQL tools into this linter.
Configurable in the input panel (0 disables the rule). Standard preset uses 120 characters; Strict uses 100.
They are static heuristics only. The tool cannot measure real query plans, indexes, or execution time without running against a database.
Yes. After the page loads, linting works offline because processing is client-side.
No. It is heuristic only. Confirm the dialect manually when accuracy matters.
No. Even valid SQL may trigger style or safety suggestions such as SELECT * or implicit joins.
Yes. Enable auto-lint for debounced live analysis, or click Analyze SQL / press Ctrl+Enter for immediate linting.
Yes when a rule can determine them. Click any issue to jump to the line in the editor.
Modern Chromium, Firefox, Safari, and Edge browsers with Web Worker and localStorage support.
Yes. No account, usage limit, or per-query charge. All processing is local and free.
Linting catches risky patterns and style drift early, making human review faster and more consistent across teams.
Ctrl+Enter on Windows/Linux or Cmd+Enter on Mac.