Как пользоваться: SQL валидатор
- Выберите диалект вашей базы данных (MySQL, PostgreSQL, SQL Server, SQLite, BigQuery и другие).
- Вставьте или откройте ваш SQL. Несколько операторов, разделённых точками с запятой, поддерживаются.
- Ошибки показывают строку, столбец и ожидаемые токены, а проблемное место выделяется.
- Корректные операторы выводятся с их типом и затрагиваемыми таблицами, а также с предупреждениями о рискованных конструкциях.
Что проверяет SQL валидатор?
SQL валидатор (или проверщик синтаксиса) разбирает ваш запрос по грамматике конкретной базы данных и сообщает, корректно ли он составлен: сбалансированы ли скобки, стоят ли ключевые слова в правильном порядке, верны ли выражения, есть ли запятые между столбцами и так далее. Этот инструмент делит скрипт на операторы, разбирает каждый отдельно, чтобы вы сразу видели все ошибки, и указывает строку и столбец, где разбор остановился.
Предупреждения о лучших практиках
| Предупреждение | Почему это важно |
|---|---|
UPDATE / DELETE без WHERE | Изменяет все строки таблицы, обычно это ошибка. |
SELECT * | Загружает столбцы, которые могут не понадобиться, и ломается при добавлении или перестановке столбцов. |
INSERT без списка столбцов | Зависит от порядка столбцов: добавление столбца сломает запрос. |
LIKE '%…' | Подстановочный знак в начале не может использовать обычный индекс и приводит к полному сканированию таблицы. |
= NULL | Никогда не истинно; используйте IS NULL. |
ORDER BY без LIMIT в подзапросе или LIMIT без ORDER BY | Порядок строк не гарантирован без явной сортировки. |
Различия диалектов, которые вызывают ошибки
- Кавычки для идентификаторов — MySQL и MariaDB используют обратные кавычки (
`order`), PostgreSQL, SQLite и стандарт SQL используют двойные кавычки, SQL Server использует квадратные скобки ([order]). - Ограничение количества строк —
LIMIT 10в MySQL, PostgreSQL и SQLite;TOP 10илиOFFSET … FETCHв SQL Server. - Upsert —
ON DUPLICATE KEY UPDATE(MySQL),ON CONFLICT … DO UPDATE(PostgreSQL, SQLite) иMERGE(SQL Server, Snowflake, BigQuery). - Приведение типов — PostgreSQL принимает
value::int, большинство других баз требуютCAST(value AS INT).
Сделайте запрос читаемым с помощью форматировщика SQL, создавайте операторы из данных с помощью CSV в SQL или JSON в SQL, а таблицы проектируйте в генераторе CREATE TABLE.
Также ищут как: sql checker онлайн.
Инструменты, которые хорошо сочетаются с SQL валидатор
- Проверка синтаксиса MySQL — Проверьте SQL-запросы MySQL перед запуском.
- Проверка синтаксиса PostgreSQL — Проверяйте запросы PostgreSQL прямо в браузере.
- Excel в JSON — Откройте книгу .xlsx или вставьте ячейки прямо из Excel или Google Sheets и получите чистый JSON.
- JSON в Excel — Превратите JSON-массив в настоящую книгу Excel.
Часто задаваемые вопросы
Мой SQL отправляется на сервер или в базу данных?
Означает ли корректный результат, что запрос выполнится?
Почему ошибка указывает на место после моей ошибки?
WHER, часто воспринимается как псевдоним, поэтому ошибка появляется на следующем слове. Проверьте также токен непосредственно перед отмеченным местом.