Muotoile ja sisennä SQL-kysely
- Hallintapaneeli
- Dokumentaatio
- API
Miksi SQL-muotoilu?
SQL-muotoilu tekee SQL-kyselyistä luettavampia ja ymmärrettävämpiä kehittäjille ja tietokannan ylläpitäjille. Tämä helpottaa vianetsintää, koodin katselmointia ja kyselyjen optimointia. Hyvin muotoiltu SQL on välttämätöntä koodin laadun ylläpitämiseksi ja tehokkaalle yhteistyölle kehitystiimissä.
Tuetut SQL-kyselytyypit
Tämä työkalu tukee kaikkia SQL-kyselytyyppejä, mukaan lukien SELECT-, INSERT-, UPDATE- ja DELETE-lausekkeet sekä taulukoiden luonti- ja muokkauslausekkeet (CREATE, ALTER, DROP).
Miten muotoilla SQL-kyselyjä
Muotoilusivulla voit muotoilla SQL-kyselysi liittämällä sen sille varattuun tekstialueeseen.
Heti kun SQL-kysely lähetetään, se muotoillaan ja näytetään tulosalueella. Jos kysely on virheellinen, näytetään virheilmoitus ja tieto ongelman laadusta.
Muotoillun SQL:n käyttö
Voit kopioida muotoillun SQL:n käyttämällä siihen tarkoitettua kopiointipainiketta. Tämä helpottaa SQL-kyselyjen sisällyttämistä projekteihisi tai raportteihisi.
SQL-koodisi pitäisi näyttää tältä:
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;
Usein kysyttyjä kysymyksiä
Mitä SQL-murteita tuetaan: MySQL, PostgreSQL, SQL Server?
Muotoilija tunnistaa standardin SQL-syntaksin (ANSI) sekä tärkeimmät laajennukset MySQL:lle, PostgreSQL:lle, SQL Serverille (T-SQL), Oraclelle (PL/SQL) ja SQLite:lle. Kunkin moottorin erityiset avainsanat (kuten MySQL:n ja PostgreSQL:n LIMIT, SQL Serverin TOP, PostgreSQL:n RETURNING, MERGE) sisennetään oikein. Moottorikohtaiset natiivifunktiot säilytetään sellaisenaan ilman vahvistusta.
Käsitteleekö muotoilija CTE-lausekkeita ja rekursiivisia kyselyjä?
Kyllä. WITH ... AS (...) -lausekkeella määritellyt CTE:t (Common Table Expressions) sisennetään omaksi lohkokseen, ja rekursiiviset CTE:t (WITH RECURSIVE) tunnistetaan. Tämä tekee monimutkaisista kyselyistä huomattavasti luettavampia, erityisesti hierarkioiden (puut, graafit) ja liukuvien ikkunoiden osalta. Myös korreloidut alikyselyt kohdistetaan niiden ylätason laajuuden mukaan.
Mitä eroa on SQL-muotoilijalla ja kyselyjen optimoijalla?
SQL-muotoilija ei muuta kyselyn semantiikkaa: se vain järjestää koodin visuaalisesti (rivinvaihdot, sisennys, avainsanojen kirjainkoko). Optimoija taas kirjoittaa kyselyn uudelleen tai ehdottaa muutoksia (puuttuvat indeksit, liitosten uudelleenjärjestely, alikyselyjen muuttaminen liitoksiksi) suorituskyvyn parantamiseksi. Suoritussuunnitelman analysoimiseksi käytä EXPLAIN tai EXPLAIN ANALYZE moottorista riippuen.
Säilytetäänkö SQL-kommentit?
Kyllä. Rivikommentit -- kommentti ja moniriviset kommentit /* ... */ säilytetään alkuperäisillä paikoillaan. Tämä on välttämätöntä monimutkaisen kyselyn dokumentoimiseksi tai osioiden merkitsemiseksi (TODO, optimointivihje, migraation versio). Jos välität kyselyn moottorille, joka tulkitsee kommentoituja vihjeitä (kuten Oraclen /*+ INDEX(...) */), ne säilytetään myös.
Miksi SQL-avainsanat kirjoitetaan isoilla kirjaimilla?
Avainsanojen (SELECT, FROM, WHERE, JOIN) kirjoittaminen isoilla kirjaimilla on historiallinen käytäntö, joka erottaa ne visuaalisesti tunnisteista (taulukoiden ja sarakkeiden nimet). Tämä helpottaa lukemista, erityisesti pitkissä kyselyissä. Taulukoiden ja sarakkeiden nimet sen sijaan säilytetään alkuperäisessä asussaan skeeman käytäntöjen noudattamiseen (erityisesti PostgreSQL:ssä, jossa kirjainkoko on merkitsevä lainatuille tunnisteille).
Valvooko muotoilija SQL-syntaksia?
Muotoilija suorittaa kevyen syntaktisen analyysin, joka havaitsee karkeat virheet (epätasapainossa olevat sulkeet, puuttuva puolipiste lauseen lopussa, epäloogiset avainsanat). Se ei vahvista taulukoiden tai sarakkeiden olemassaoloa eikä tietyn skeeman mukaisuutta. Tätä varten suorita kysely EXPLAIN-tilassa tietokannassasi tai käytä erillistä linteriä, kuten sqlfluff.
Pyyntöesimerkki
curl -X POST https://cdrn.fr/api/v1/tools/sql-formatter/execute \
-H "Content-Type: application/json" \
-d '{"input":"..."}'
Syöteskeema
| Kenttä | Tyyppi | Pakollinen | Oletus |
|---|---|---|---|
input |
text | ✓ | – |
Päätepisteet
GET https://cdrn.fr/api/v1/tools- listaa kaikki saatavilla olevat työkalutGET https://cdrn.fr/api/v1/tools/sql-formatter- hakee tämän työkalun skeemanPOST https://cdrn.fr/api/v1/tools/sql-formatter/execute- suorittaa tämän työkalun JSON-payloadilla