Formater og indryk en SQL-forespørgsel
- Dashboard
- Dokumentation
- API
Hvorfor SQL-formatering?
SQL-formatering hjælper med at gøre SQL-forespørgsler mere læsbare og forståelige for udviklere og databaseadministratorer. Dette letter debugging, kodegennemgang og optimering af anmodninger. Velformateret SQL er afgørende for at opretholde kodekvalitet og samarbejde effektivt om i et udviklingsteam.
Understøttede SQL-forespørgselstyper
Dette værktøj understøtter alle typer SQL-forespørgsler, inklusive SELECT, INSERT, UPDATE, SLET, samt instruktioner til oprettelse og ændring af tabel (CREATE, ALTER, DROP).
Sådan formateres SQL-forespørgsler
På formateringssiden kan du formatere din SQL-forespørgsel ved at indsætte den i den medfølgende tekstboks til dette formål.
Så snart SQL-forespørgslen er sendt, vil den blive formateret og vist i en resultatboks. Hvis forespørgslen er ugyldig, vil der blive vist en fejl med en indikation af problemets art.
Brug formateret SQL
Du kan kopiere den formaterede SQL ved at bruge kopiknappen, der er beregnet til dette formål. Dette vil lette at integrere SQL-forespørgsler i dine projekter eller rapporter.
Din SQL-kode skal se sådan ud:
VÆLG u.id, u.navn, u.e-mail,
p.produktnavn, p.pris,
o.ordre_date, o.quantity,
(VÆLG SUM(p2.pris * o2.antal)
FRA ordrer o2
JOIN produkter p2 ON o2.product_id = p2.id
WHERE o2.user_id = u.id) som total_spent
FRA brugere u
JOIN ordrer o PÅ u.id = o.user_id
JOIN produkter p ON o.product_id = p.id
HVOR u.id IN (
VÆLG bruger_id
FRA ordrer
HVOR ordredato >= '2023-01-01' OG ordredato <= '2023-12-31'
GROUP BY user_id
HAR ANTAL(*) > 5
)
OG s.pris > 50
BESTIL AF u.navn ASC, o.ordre_date DESC
GRÆNSE 10;
Ofte stillede spørgsmål
Hvilke SQL-dialekter understøttes: MySQL, PostgreSQL, SQL Server?
Træneren genkender standard SQL-syntaks (ANSI) samt de vigtigste udvidelser af MySQL, PostgreSQL, SQL Server (T-SQL), Oracle (PL/SQL) og SQLite. Nøgleordene, der er specifikke for hver motor (LIMIT af MySQL og PostgreSQL, TOP af SQL Server, RETURNING af PostgreSQL, MERGE) er indrykket korrekt. Native funktioner, der er specifikke for en motor, bevares som de er uden validering.
Håndterer formateringsværktøjet CTE'er og rekursive forespørgsler?
Ja. CTE'er (Common Table Expressions) erklæret med WITH ... AS (...) indrykkes på deres egen blok, og rekursive CTE'er (WITH RECURSIVE) genkendes. Dette gør komplekse forespørgsler meget mere læsbare, herunder hierarkier (træer, grafer) og glidende vinduer. Korrelerede underforespørgsler er også tilpasset deres overordnede omfang.
Hvad er forskellen mellem en SQL-formater og en forespørgselsoptimering?
En SQL-formater ændrer ikke forespørgslens semantik: den omorganiserer simpelthen koden visuelt (linjeskift, indrykning, store og små bogstaver i nøgleordet). En optimeringsmaskine omskriver forespørgslen eller foreslår ændringer (manglende indekser, sammenføjninger til omorganisering, underforespørgsler, der skal transformeres til sammenkædninger) for at forbedre ydeevnen. For at analysere udførelsesplanen skal du bruge EXPLAIN eller EXPLAIN ANALYZE afhængigt af motoren.
Er SQL-kommentarer bevaret?
Ja. Indlejrede kommentarer -- kommentar og kommentarer med flere linjer /* ... */ opbevares på deres oprindelige placering. Dette er vigtigt for at dokumentere en kompleks forespørgsel eller markere sektioner (TODO, tip til optimeringsværktøjet, version af en migrering). Hvis du sender forespørgslen til en motor, der fortolker kommenterede hints (/*+ INDEX(...) */ på Oracle), bevares de også.
Hvorfor skrives SQL-nøgleord med stort?
Brug af store bogstaver (SELECT, FROM, WHERE, JOIN) er en historisk konvention, der visuelt adskiller dem fra identifikatorer (tabelnavne, kolonner). Denne praksis gør læsning lettere, især i lange forespørgsler. Tabel- og kolonnenavne bevares dog i deres oprindelige store og små bogstaver for at respektere skemakonventioner (især på PostgreSQL, hvor store og små bogstaver er følsomme for citater).
Validerer formateringsværktøjet SQL-syntaks?
Formateringsværktøjet udfører en let syntaktisk analyse, som registrerer grove fejl (ubalancerede parenteser, manglende semikolon i slutningen af sætningen, inkonsistente nøgleord). Det validerer ikke eksistensen af tabeller og kolonner eller overensstemmelsen med et specifikt skema. For at gøre dette, kør forespørgslen i EXPLAIN-tilstand på din database, eller brug en dedikeret linter som sqlfluff.
Anmodningseksempel
curl -X POST https://cdrn.fr/api/v1/tools/sql-formatter/execute \
-H "Content-Type: application/json" \
-d '{"input":"..."}'
Inputskema
| Felt | Type | Påkrævet | Standard |
|---|---|---|---|
input |
text | ✓ | – |
Endpoints
GET https://cdrn.fr/api/v1/tools- lister alle tilgængelige værktøjerGET https://cdrn.fr/api/v1/tools/sql-formatter- henter skemaet for dette værktøjPOST https://cdrn.fr/api/v1/tools/sql-formatter/execute- udfører dette værktøj med et JSON-payload