Formatirati in zamakniti SQL poizvedbo
- Nadzorna plošča
- Dokumentacija
- API
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 orodjaGET https://cdrn.fr/api/v1/tools/sql-formatter- pridobi shemo tega orodjaPOST https://cdrn.fr/api/v1/tools/sql-formatter/execute- izvede to orodje s JSON payloadom