SQL lekérdezés formázása és behúzása
- Irányítópult
- Dokumentáció
- API
Miért fontos az SQL formázás?
Az SQL formázás lehetővé teszi, hogy az SQL lekérdezések olvashatóbbak és érthetőbbek legyenek a fejlesztők és az adatbázis-adminisztrátorok számára. Ez megkönnyíti a hibakeresést, a kód felülvizsgálatát és a lekérdezések optimalizálását. A jól formázott SQL elengedhetetlen a kódminőség fenntartásához és a fejlesztőcsapaton belüli hatékony együttműködéshez.
Támogatott SQL lekérdezés típusok
Ez az eszköz minden típusú SQL lekérdezést támogat, beleértve a SELECT, INSERT, UPDATE, DELETE utasításokat, valamint a táblák létrehozására és módosítására szolgáló utasításokat (CREATE, ALTER, DROP).
Hogyan formázzunk SQL lekérdezéseket
A formázási oldalon az SQL lekérdezést az erre a célra szolgáló szövegmezőbe beillesztve formázhatja.
Amint elküldi az SQL lekérdezést, az formázásra kerül és megjelenik egy eredményzónában. Ha a lekérdezés érvénytelen, hibaüzenet jelenik meg a probléma jellegére utaló jelzéssel.
A formázott SQL felhasználása
A formázott SQL-t a megfelelő másolás gombbal másolhatja ki. Ez megkönnyíti az SQL lekérdezések beépítését a projektjeibe vagy jelentéseibe.
Az Ön SQL kódjának így kellene kinéznie:
SELECT u.id, u.name, u.email,
p.product_name, p.price,
o.order_date, o.quantity,
(SELECT SUM(p2.price * o2.quantity)
FROM orders o2
JOIN products p2 ON o2.product_id = p2.id
WHERE o2.user_id = u.id) as total_spent
FROM users u
JOIN orders o ON u.id = o.user_id
JOIN products p ON o.product_id = p.id
WHERE u.id IN (
SELECT user_id
FROM orders
WHERE order_date >= '2023-01-01' AND order_date <= '2023-12-31'
GROUP BY user_id
HAVING COUNT(*) > 5
)
AND p.price > 50
ORDER BY u.name ASC, o.order_date DESC
LIMIT 10;
Gyakori kérdések
Milyen SQL dialektusok támogatottak: MySQL, PostgreSQL, SQL Server?
A formázó felismeri a standard SQL (ANSI) szintaxist, valamint a MySQL, PostgreSQL, SQL Server (T-SQL), Oracle (PL/SQL) és SQLite főbb kiterjesztéseit. Az egyes motorokra jellemző kulcsszavak (a MySQL és a PostgreSQL LIMIT, az SQL Server TOP, a PostgreSQL RETURNING, MERGE) megfelelően vannak behúzva. A motorfüggő natív függvények változatlanul megmaradnak ellenőrzés nélkül.
Kezeli a formázó a CTE-ket és a rekurzív lekérdezéseket?
Igen. A WITH ... AS (...) segítségével deklarált CTE-k (Common Table Expressions) saját blokkban vannak behúzva, és a rekurzív CTE-k (WITH RECURSIVE) is felismerésre kerülnek. Ez jelentősen olvashatóbbá teszi a komplex lekérdezéseket, különösen a hierarchiákat (fák, gráfok) és a gördülő ablakokat. A korrelált al-lekérdezések szintén a szülő hatókörükhöz vannak igazítva.
Mi a különbség az SQL formázó és a lekérdezés-optimalizáló között?
Az SQL formázó nem változtatja meg a lekérdezés szemantikáját: csupán vizuálisan rendezi át a kódot (soremelések, behúzás, kulcsszavak írásmódja). Az optimalizáló ezzel szemben átírja a lekérdezést, vagy módosításokat javasol (hiányzó indexek, átrendezendő összekapcsolások, összekapcsolássá alakítandó al-lekérdezések) a teljesítmény javítása érdekében. A végrehajtási terv elemzéséhez használja az EXPLAIN vagy EXPLAIN ANALYZE parancsot a motornak megfelelően.
Megmaradnak az SQL megjegyzések?
Igen. Az egysoros -- megjegyzés és a többsoros /* ... */ megjegyzések az eredeti helyükön megmaradnak. Ez elengedhetetlen egy komplex lekérdezés dokumentálásához vagy szakaszok megjelöléséhez (TODO, optimalizáló hint, migráció verziója). Ha a lekérdezést olyan motorhoz továbbítja, amely értelmezi a megjegyzésbe tett hinteket (/*+ INDEX(...) */ Oracle-en), azok szintén megmaradnak.
Miért íródnak nagybetűvel az SQL kulcsszavak?
Az SQL kulcsszavak (SELECT, FROM, WHERE, JOIN) nagybetűvel írása egy történelmi konvenció, amely vizuálisan megkülönbözteti őket az azonosítóktól (táblanevek, oszlopok). Ez a gyakorlat megkönnyíti az olvasást, különösen a hosszú lekérdezésekben. A tábla- és oszlopnevek viszont megmaradnak eredeti írásmódjukban, hogy tiszteletben tartsák a séma konvencióit (különösen a PostgreSQL-en, ahol az idézőjelek közé tett azonosítók kis- és nagybetűérzékenyek).
Ellenőrzi a formázó az SQL szintaxisát?
A formázó könnyű szintaktikai elemzést végez, amely észleli a durva hibákat (nem kiegyensúlyozott zárójelek, hiányzó pontosvessző az utasítás végén, inkonzisztens kulcsszavak). Nem ellenőrzi a táblák és oszlopok létezését, sem a pontos sémának való megfelelést. Ehhez futtassa a lekérdezést EXPLAIN módban az adatbázisán, vagy használjon dedikált lintert, például a sqlfluff-ot.
Kérés példa
curl -X POST https://cdrn.fr/api/v1/tools/sql-formatter/execute \
-H "Content-Type: application/json" \
-d '{"input":"..."}'
Bemeneti séma
| Mező | Típus | Kötelező | Alapértelmezett |
|---|---|---|---|
input |
text | ✓ | – |
Végpontok
GET https://cdrn.fr/api/v1/tools- listázza az összes elérhető eszköztGET https://cdrn.fr/api/v1/tools/sql-formatter- lekéri ezen eszköz sémájátPOST https://cdrn.fr/api/v1/tools/sql-formatter/execute- végrehajtja ezen eszközt JSON payloaddal