Unealtă gratuită pentru programatori

Formatare SQL online

Lipești o interogare SQL scrisă pe un singur rând și o primești aranjată pe clauze, cu JOIN-uri, subinterogări și CASE indentate, sau o minifici. Textul din ghilimele și comentariile rămân neschimbate.

Exemple de SQL formatat

Variante gata făcute: copiază codul direct sau deschide exemplul în generator și modifică-l după nevoie.

JOIN cu GROUP BY Fiecare clauză pe rândul ei, condiția ON sub JOIN.
SELECT
  c.nume,
  COUNT(*) AS nr
FROM
  comenzi o
  JOIN clienti c
    ON c.id = o.client_id
WHERE
  o.data >= '2026-01-01'
GROUP BY
  c.nume
ORDER BY
  nr DESC;
Subinterogare, indentare de 4 Interogarea din paranteză primește un nivel în plus.
SELECT
    *
FROM
    produse
WHERE
    id IN (
        SELECT
            produs_id
        FROM
            stoc
        WHERE
            cantitate = 0
    );
Minificat, cu comentariu păstrat Comentariul – rămâne urmat de un rând nou, ca să nu înghită ORDER BY.
SELECT id,nume FROM clienti WHERE activ = 1 -- doar clienții activi
ORDER BY nume;

Cum folosești formatorul SQL

  1. Lipește una sau mai multe instrucțiuni în câmpul Interogarea SQL, separate prin ;.
  2. Alege Operația: Formatează (pe rânduri și niveluri) sau Minifică (pe un singur rând).
  3. Bifează sau debifează Cuvintele-cheie cu majuscule și O coloană pe rând în SELECT, apoi alege Indentarea de 2 sau 4 spații.
  4. Copiază rezultatul. Interogarea nu este rulată și nu pleacă din browser.

Ce face formatorul

Fiecare clauză principală (SELECT, FROM, WHERE, GROUP BY, ORDER BY, INSERT INTO, UPDATE, SET) începe pe rândul ei, iar conținutul ei e indentat. JOIN-urile stau sub tabelul din FROM, condițiile ON, AND și OR pe rânduri separate, iar subinterogările și CASE primesc un nivel în plus.

SELECT
  p.ID,
  pm.meta_value AS pret
FROM
  wp_posts p
  INNER JOIN wp_postmeta pm
    ON pm.post_id = p.ID
    AND pm.meta_key = '_price'
WHERE
  p.post_status = 'publish'
LIMIT 10;

Ce nu se schimbă

Formatorul mută doar spațiile și rândurile și, dacă vrei, scrie cuvintele-cheie cu majuscule. Textul dintre ghilimele simple, numele dintre ghilimele duble sau backtick-uri și comentariile (--, /* */) rămân exact cum le-ai scris. Numele de tabele și coloane nu se transformă: pe Linux, MySQL face diferența între Clienti și clienti la numele de tabele.

Formatorul nu verifică dacă interogarea e corectă. Dacă parantezele nu se închid sau un șir rămâne deschis, primești un avertisment, iar rezultatul poate arăta ciudat.

Întrebări frecvente

Merge pentru MySQL, PostgreSQL și SQL Server?

Da, pentru sintaxa obișnuită. Recunoaște și șirurile $$…$$ din PostgreSQL, numele între [paranteze] din SQL Server și comentariile # din MySQL scrise pe rând propriu.

Minificarea păstrează comentariile?

Da. Comentariile pot conține indicații pentru server (de exemplu /*+ … */ sau /*! … */ în MySQL), de aceea rămân, iar cele cu – sunt urmate de un rând nou ca să nu înghită restul interogării.