Форматиране и подреждане на SQL заявка
- Табло
- Документация
- API
Защо SQL форматиране?
SQL форматирането помага да се направят SQL заявките по-четими и разбираеми за разработчиците и администратори на бази данни. Това улеснява отстраняването на грешки, прегледа на кода и оптимизирането на заявки. Добре форматираният SQL е от съществено значение за поддържане на качеството на кода и ефективно сътрудничество в рамките на екип за разработка.
Поддържани типове SQL заявки
Този инструмент поддържа всички видове SQL заявки, включително SELECT, INSERT, UPDATE, DELETE, както и инструкции за създаване и модифициране на таблици (CREATE, ALTER, DROP).
Как да форматирате SQL заявки
На страницата за форматиране можете да форматирате вашата SQL заявка, като я поставите в предоставеното текстово поле за тази цел.
Веднага след като SQL заявката бъде изпратена, тя ще бъде форматирана и показана в поле за резултати. Ако заявката е невалиден, ще се покаже грешка с указание за естеството на проблема.
Използвайте форматиран SQL
Можете да копирате форматирания SQL, като използвате предоставения за тази цел бутон за копиране. Това ще улесни интегриране на SQL заявки във вашите проекти или отчети.
Вашият SQL код трябва да изглежда така:
<преди>
ИЗБЕРЕТЕ u.id, u.name, u.email,
p.product_name, p.price,
o.order_date, o.quantity,
(ИЗБЕРЕТЕ СУМА(p2.цена * o2.количество)
ОТ поръчки o2
ПРИСЪЕДИНЕТЕ продукти p2 ON o2.product_id = p2.id
WHERE o2.user_id = u.id) като total_spend
ОТ потребители u
ПРИСЪЕДИНЕТЕ поръчки o ON u.id = o.user_id
ПРИСЪЕДИНЕТЕ продукти p ON o.product_id = p.id
WHERE u.id IN (
ИЗБЕРЕТЕ user_id
ОТ поръчки
WHERE дата_на_поръчка >= '2023-01-01' И дата_на_поръчка <= '2023-12-31'
ГРУПИРАНЕ ПО user_id
КАТО БРОИМ (*) > 5
)
И p.цена > 50
ПОРЪЧКА ПО u.name ASC, o.order_date DESC
ОГРАНИЧЕНИЕ 10;
Често задавани въпроси
Кои SQL диалекти се поддържат: MySQL, PostgreSQL, SQL Server?
Обучителят разпознава стандартния SQL синтаксис (ANSI), както и основните разширения на MySQL, PostgreSQL, SQL Server (T-SQL), Oracle (PL/SQL) и SQLite. Ключовите думи, специфични за всяка машина (LIMIT на MySQL и PostgreSQL, TOP на SQL Server, RETURNING на PostgreSQL, MERGE) са с правилен отстъп. Естествените функции, специфични за двигател, се запазват такива, каквито са без валидиране.
Формататорът обработва ли CTE и рекурсивни заявки?
да CTE (Общи таблични изрази), декларирани с WITH ... AS (...), са с отстъп в собствения си блок и рекурсивните CTE (WITH RECURSIVE) се разпознават. Това прави сложните заявки много по-четими, включително йерархии (дървета, графики) и плъзгащи се прозорци. Корелираните подзаявки също са приведени в съответствие с техния родителски обхват.
Каква е разликата между SQL форматиращ инструмент и оптимизатор на заявки?
SQL формататорът не променя семантиката на заявката: той просто реорганизира кода визуално (прекъсвания на редове, отстъпи, регистър на ключовите думи). Оптимизаторът пренаписва заявката или предлага модификации (липсващи индекси, обединения за реорганизиране, подзаявки за трансформиране в обединения), за да подобри производителността. За да анализирате плана за изпълнение, използвайте EXPLAIN или EXPLAIN ANALYZE в зависимост от двигателя.
Запазват ли се SQL коментарите?
да Вградените коментари - коментар и многоредовите коментари /* ... */ се запазват в първоначалното си местоположение. Това е от съществено значение за документиране на сложна заявка или маркиране на секции (TODO, съвет за оптимизатора, версия на миграция). Ако подадете заявката към машина, която интерпретира коментирани съвети (/*+ INDEX(...) */ на Oracle), те също се запазват.
Защо SQL ключовите думи се пишат с главни букви?
Изписването с главни букви на ключови думи (SELECT, FROM, WHERE, JOIN) е историческа конвенция, която визуално ги разграничава от идентификаторите (имена на таблици, колони). Тази практика улеснява четенето, особено при дълги заявки. Имената на таблиците и колоните обаче се запазват в оригиналния си регистър, за да се спазват конвенциите на схемата (по-специално в PostgreSQL, където регистърът на буквите е чувствителен за идентификатори в кавички).
Програмата за форматиране проверява ли SQL синтаксиса?
Форматът извършва лек синтактичен анализ, който открива груби грешки (небалансирани скоби, липсваща точка и запетая в края на израза, непоследователни ключови думи). Той не валидира съществуването на таблици и колони, нито съответствието с конкретна схема. За да направите това, изпълнете заявката в режим EXPLAIN във вашата база данни или използвайте специален линтер като sqlfluff.
Пример за заявка
curl -X POST https://cdrn.fr/api/v1/tools/sql-formatter/execute \
-H "Content-Type: application/json" \
-d '{"input":"..."}'
Входна схема
| Поле | Тип | Задължително | По подразбиране |
|---|---|---|---|
input |
text | ✓ | – |
Крайни точки
GET https://cdrn.fr/api/v1/tools- изброява всички достъпни инструментиGET https://cdrn.fr/api/v1/tools/sql-formatter- извлича схемата на този инструментPOST https://cdrn.fr/api/v1/tools/sql-formatter/execute- изпълнява този инструмент с JSON payload