Formatirati in zamakniti SQL poizvedbo

formatira vaše SQL poizvedbe, da so berljive in razumljive, olajša razvoj in vzdrževanje

Zakaj oblikovanje SQL?

Oblikovanje SQL pomaga, da so poizvedbe SQL bolj berljive in razumljive za razvijalce in skrbniki baz podatkov. To olajša odpravljanje napak, pregled kode in optimizacijo zahteve. Dobro oblikovan SQL je bistvenega pomena za ohranjanje kakovosti kode in učinkovito sodelovanje znotraj razvojne ekipe.

Podprte vrste poizvedb SQL

To orodje podpira vse vrste poizvedb SQL, vključno z SELECT, INSERT, UPDATE, DELETE, kot tudi navodila za ustvarjanje in spreminjanje tabele (CREATE, ALTER, DROP).

Kako oblikovati poizvedbe SQL

Na strani za oblikovanje lahko formatirate svojo poizvedbo SQL tako, da jo prilepite v predvideno besedilno polje za ta namen.

Takoj ko je poizvedba SQL poslana, bo oblikovana in prikazana v polju z rezultati. Če je poizvedba je neveljaven, bo prikazana napaka z navedbo narave težave.

Uporabite formatiran SQL

Oblikovani SQL lahko kopirate s pomočjo gumba za kopiranje, ki je predviden za ta namen. To bo olajšalo integracijo poizvedb SQL v vaše projekte ali poročila.

Vaša koda SQL bi morala izgledati takole:

IZBERITE u.id, u.ime, u.email, p.product_name, p.price, o.datum_naročila, o.količina, (IZBERI SUM(p2.cena * o2.količina) OD naročil o2 PRIDRUŽI se izdelkom p2 NA o2.product_id = p2.id WHERE o2.user_id = u.id) kot skupno_porabo OD uporabnikov u PRIDRUŽITE SE naročilom o ON u.id = o.user_id PRIDRUŽI se izdelkom p ON o.product_id = p.id WHERE u.id IN ( IZBERITE user_id IZ naročil WHERE datum_naročila >= '2023-01-01' IN datum_naročila <= '2023-12-31' GROUP BY user_id OB ŠTEVJU (*) > 5 ) IN p.cena > 50 ORDER BY u.name ASC, o.order_date DESC OMEJITEV 10;

Pogosta vprašanja

Katera narečja SQL so podprta: MySQL, PostgreSQL, SQL Server?

Trener prepozna standardno sintakso SQL (ANSI) kot tudi glavne razširitve MySQL, PostgreSQL, SQL Server (T-SQL), Oracle (PL/SQL) in SQLite. Ključne besede, specifične za vsak motor (LIMIT MySQL in PostgreSQL, TOP SQL Server, RETURNING PostgreSQL, MERGE) so pravilno zamaknjene. Izvorne funkcije, specifične za motor, se ohranijo takšne, kot so, brez preverjanja.

Ali formater obravnava CTE in rekurzivne poizvedbe?

ja CTE (Common Table Expressions), deklarirani s WITH ... AS (...), so zamaknjeni v svojem bloku, rekurzivni CTE (WITH RECURSIVE) pa so prepoznani. Zaradi tega so zapletene poizvedbe veliko bolj berljive, vključno s hierarhijami (drevesa, grafi) in drsečimi okni. Korelirane podpoizvedbe so prav tako usklajene s svojim nadrejenim obsegom.

Kakšna je razlika med oblikovalnikom SQL in optimizatorjem poizvedb?

Oblikovalnik SQL ne spremeni semantike poizvedbe: preprosto vizualno reorganizira kodo (prelomi vrstic, zamiki, velike in male črke ključnih besed). Optimizator prepiše poizvedbo ali predlaga spremembe (manjkajoči indeksi, združevanja za reorganizacijo, podpoizvedbe za preoblikovanje v združevanja), da izboljša zmogljivost. Za analizo izvedbenega načrta uporabite EXPLAIN ali EXPLAIN ANALYZE, odvisno od motorja.

Ali se komentarji SQL ohranijo?

ja Komentarji v vrstici - -- komentar in večvrstični komentarji /* ... */ so shranjeni na izvirnem mestu. To je nujno za dokumentiranje kompleksne poizvedbe ali označevanje odsekov (TODO, namig za optimizator, različica migracije). Če poizvedbo posredujete mehanizmu, ki interpretira komentirane namige (/*+ INDEX(...) */ na Oracle), se tudi ohranijo.

Zakaj so ključne besede SQL napisane z veliko začetnico?

Uporaba velikih začetnic v ključnih besedah (SELECT, FROM, WHERE, JOIN) je zgodovinska konvencija, ki jih vizualno razlikuje od identifikatorjev (imen tabel, stolpcev). Ta praksa olajša branje, zlasti pri dolgih poizvedbah. Vendar so imena tabel in stolpcev ohranjena v izvirnih velikih in malih črkah, da se upoštevajo konvencije sheme (zlasti v PostgreSQL, kjer so velike in male črke občutljive za narekovane identifikatorje).

Ali formater preverja sintakso SQL?

Oblikovalnik izvede lahko sintaktično analizo, ki zazna hude napake (neuravnotežene oklepaje, manjkajoče podpičje na koncu stavka, nedosledne ključne besede). Ne preverja obstoja tabel in stolpcev niti skladnosti z določeno shemo. Če želite to narediti, zaženite poizvedbo v načinu EXPLAIN v vaši bazi podatkov ali uporabite namenski linter, kot je sqlfluff.

Primer zahteve

curl -X POST https://cdrn.fr/api/v1/tools/sql-formatter/execute \
  -H "Content-Type: application/json" \
  -d '{"input":"..."}'

Vhodna shema

Polje Tip Obvezno Privzeto
input text

Končne točke

  • GET https://cdrn.fr/api/v1/tools - izpiše vsa razpoložljiva orodja
  • GET https://cdrn.fr/api/v1/tools/sql-formatter - pridobi shemo tega orodja
  • POST https://cdrn.fr/api/v1/tools/sql-formatter/execute - izvede to orodje s JSON payloadom