Formatirati i uvući SQL upit
- Nadzorna ploča
- Dokumentacija
- API
Zašto SQL formatiranje?
SQL oblikovanje pomaže da SQL upiti budu čitljiviji i razumljiviji programerima i administratori baze podataka. To olakšava otklanjanje pogrešaka, pregled koda i optimizaciju zahtjevi. Dobro formatiran SQL ključan je za održavanje kvalitete koda i učinkovitu suradnju unutar razvojnog tima.
Podržane vrste SQL upita
Ovaj alat podržava sve vrste SQL upita, uključujući SELECT, INSERT, UPDATE, DELETE, kao i upute za kreiranje i modificiranje tablice (CREATE, ALTER, DROP).
Kako formatirati SQL upite
Na stranici za oblikovanje možete oblikovati svoj SQL upit tako da ga zalijepite u predviđeni tekstni okvir za ovu svrhu.
Čim se pošalje SQL upit, bit će formatiran i prikazan u okviru s rezultatima. Ako upit nije valjan, prikazat će se pogreška s naznakom prirode problema.
Koristite formatirani SQL
Možete kopirati formatirani SQL pomoću gumba za kopiranje predviđenog za ovu svrhu. Ovo će olakšati integraciju SQL upita u vaše projekte ili izvješća.
Vaš SQL kod trebao bi izgledati ovako:
<šifra>
ODABERITE u.id, u.name, u.email,
p.product_name, p.price,
o.datum_narudžbe, o.količina,
(SELECT SUM(p2.price * o2.quantity)
IZ naloga o2
PRIDRUŽI proizvode p2 NA o2.product_id = p2.id
WHERE o2.user_id = u.id) kao total_spend
OD korisnika u
PRIDRUŽI narudžbe o ON u.id = o.user_id
PRIDRUŽI proizvode p ON o.product_id = p.id
WHERE u.id IN (
SELECT user_id
IZ narudžbi
WHERE datum_narudžbe >= '2023-01-01' I datum_narudžbe <= '2023-12-31'
GROUP BY user_id
BROJANJE(*) > 5
)
I p.cijena > 50
ORDER BY u.name ASC, o.order_date DESC
OGRANIČENJE 10;
Često postavljana pitanja
Koji su SQL dijalekti podržani: MySQL, PostgreSQL, SQL Server?
Trener prepoznaje standardnu SQL sintaksu (ANSI) kao i glavna proširenja MySQL, PostgreSQL, SQL Server (T-SQL), Oracle (PL/SQL) i SQLite. Ključne riječi specifične za svaki stroj (LIMIT za MySQL i PostgreSQL, TOP za SQL Server, RETURNING za PostgreSQL, MERGE) ispravno su uvučene. Izvorne funkcije specifične za motor ostaju takve kakve jesu bez provjere valjanosti.
Radi li formater CTE-ove i rekurzivne upite?
da CTE (Common Table Expressions) deklarirani s WITH ... AS (...) uvučeni su u vlastiti blok, a rekurzivni CTE (WITH RECURSIVE) se prepoznaju. To čini složene upite puno čitljivijim, uključujući hijerarhije (stabla, grafikone) i klizne prozore. Korelirani podupiti također su usklađeni sa svojim nadređenim opsegom.
Koja je razlika između SQL formattera i alata za optimizaciju upita?
SQL formater ne mijenja semantiku upita: on jednostavno vizualno reorganizira kod (prijelomi redaka, uvlake, velika i mala slova). Optimizator prepisuje upit ili predlaže izmjene (nedostaju indeksi, spojevi za reorganizaciju, podupiti za transformaciju u spojeve) kako bi se poboljšala izvedba. Za analizu plana izvršenja upotrijebite EXPLAIN ili EXPLAIN ANALYZE ovisno o stroju.
Jesu li SQL komentari sačuvani?
da Umetnuti komentari -- komentar i višeredni komentari /* ... */ čuvaju se na izvornoj lokaciji. Ovo je bitno za dokumentiranje složenog upita ili označavanje odjeljaka (TODO, savjet za optimizator, verzija migracije). Ako proslijedite upit mehanizmu koji tumači komentirane savjete (/*+ INDEX(...) */ na Oracleu), oni se također čuvaju.
Zašto se SQL ključne riječi pišu velikim slovima?
Ključne riječi velikim slovom (SELECT, FROM, WHERE, JOIN) povijesna je konvencija koja ih vizualno razlikuje od identifikatora (imena tablica, stupaca). Ova praksa olakšava čitanje, osobito u dugim upitima. Međutim, nazivi tablica i stupaca čuvaju se u svojim izvornim velikim i velikim slovima kako bi se poštivale konvencije sheme (osobito na PostgreSQL-u gdje su velika i mala slova osjetljiva na navodne identifikatore).
Provjerava li formater SQL sintaksu?
Formater izvodi laganu sintaktičku analizu koja otkriva velike pogreške (neuravnotežene zagrade, točka-zarez koji nedostaje na kraju iskaza, nedosljedne ključne riječi). Ne potvrđuje postojanje tablica i stupaca, niti usklađenost s određenom shemom. Da biste to učinili, pokrenite upit u načinu EXPLAIN u svojoj bazi podataka ili upotrijebite namjenski linter poput sqlfluff.
Primjer zahtjeva
curl -X POST https://cdrn.fr/api/v1/tools/sql-formatter/execute \
-H "Content-Type: application/json" \
-d '{"input":"..."}'
Ulazna shema
| Polje | Tip | Obavezno | Zadano |
|---|---|---|---|
input |
text | ✓ | – |
Krajnje točke
GET https://cdrn.fr/api/v1/tools- ispisuje sve dostupne alateGET https://cdrn.fr/api/v1/tools/sql-formatter- dohvaća shemu ovog alataPOST https://cdrn.fr/api/v1/tools/sql-formatter/execute- izvršava ovaj alat s JSON payloadom