Ifformatta u indenta mistoqsija SQL

jifformatta l-mistoqsijiet SQL tiegħek biex jagħmilhom qari u jinftiehmu, jiffaċilita l-iżvilupp u l-manutenzjoni

Għaliex ifformattjar SQL?

L-ifformattjar SQL jgħin biex il-mistoqsijiet SQL jinqraw aktar u jinftiehmu mill-iżviluppaturi u amministraturi tad-databases. Dan jiffaċilita debugging, reviżjoni tal-kodiċi u ottimizzazzjoni ta talbiet. SQL ifformattjat tajjeb huwa essenzjali biex tinżamm il-kwalità tal-kodiċi u tikkollabora b'mod effettiv fuqu fi ħdan tim ta’ żvilupp.

Tipi ta' Mistoqsija SQL appoġġjati

Din l-għodda tappoġġja t-tipi kollha ta’ mistoqsijiet SQL, inklużi SELECT, INSERT, UPDATE, Ħassar, kif ukoll struzzjonijiet dwar il-ħolqien u l-modifika tat-tabella (ĦLOQ, ALTER, Waqqa).

Kif tifformattja l-mistoqsijiet SQL

Fuq il-paġna tal-ifformattjar, tista' tifformattja l-mistoqsija SQL tiegħek billi twaħħalha fil-kaxxa tat-test ipprovduta għal dan il-għan.

Hekk kif il-mistoqsija SQL tiġi sottomessa, tiġi fformattjata u murija f'kaxxa tar-riżultati. Jekk il-mistoqsija huwa invalidu, se jintwera żball b'indikazzjoni tan-natura tal-problema.

Uża SQL ifformattjat

Tista' tikkopja l-SQL ifformattjat billi tuża l-buttuna tal-kopja pprovduta għal dan il-għan. Dan se jiffaċilita tintegra mistoqsijiet SQL fil-proġetti jew ir-rapporti tiegħek.

Il-kodiċi SQL tiegħek għandu jidher bħal dan:


AGĦŻEL u.id, u.name, u.email,
       p.isem_prodott, p.prezz,
       o.order_date, o.quantity,
       (AGĦŻEL SOMMA(p2.prezz * o2.kwantità)
        MINN ordnijiet o2
        INGĦABBA prodotti p2 FUQ o2.product_id = p2.id
        FEJN o2.user_id = u.id) bħala total_spent
MILL-utenti u
Ordnijiet JOIN o FUQ u.id = o.user_id
JOIN prodotti p FUQ o.product_id = p.id
FEJN u.id FI (
    AGĦŻEL user_id
    MINN ordnijiet
    FEJN data_ordni >= '2023-01-01' U data_ordni <= '2023-12-31'
    GRUPP MINN user_id
    WARA LI GĦADD(*) > 5
)
U p.prezz > 50
ORDNI MINN u.isem ASC, o.order_date DESC
LIMITU 10;

    

Mistoqsijiet frekwenti

Liema djaletti SQL huma appoġġjati: MySQL, PostgreSQL, SQL Server?

It-trejner jagħraf is-sintassi SQL standard (ANSI) kif ukoll l-estensjonijiet ewlenin ta 'MySQL, PostgreSQL, SQL Server (T-SQL), Oracle (PL/SQL) u SQLite. Il-kliem prinċipali speċifiċi għal kull magna (LIMIT ta' MySQL u PostgreSQL, TOP ta' SQL Server, RETURNING ta' PostgreSQL, MERGE) huma indentjati b'mod korrett. Funzjonijiet indiġeni speċifiċi għal magna jinżammu kif inhuma mingħajr validazzjoni.

Il-formatter jimmaniġġja CTEs u mistoqsijiet rikorsivi?

Iva. CTEs (Common Table Expressions) iddikjarati b'WITH... AS (...) huma indentati fuq il-blokk tagħhom stess, u CTEs rikorsivi (WITH RECURSIVE) huma rikonoxxuti. Dan jagħmel mistoqsijiet kumplessi ħafna aktar leġibbli, inklużi ġerarkiji (siġar, graffs) u twieqi li jiżżerżqu. Subqueries korrelatati huma wkoll allinjati mal-ambitu prinċipali tagħhom.

X'inhi d-differenza bejn formatter SQL u ottimizzatur tal-mistoqsijiet?

Formatter SQL ma jbiddilx is-semantika tal-mistoqsija: sempliċement jorganizza mill-ġdid il-kodiċi viżwalment (line breaks, indentazzjoni, każ ta' keyword). Ottimizzatur jikteb mill-ġdid il-mistoqsija jew jissuġġerixxi modifiki (indiċijiet neqsin, jingħaqad biex jiġi organizzat mill-ġdid, sottomistoqsijiet biex jittrasformaw f'joints) biex ittejjeb il-prestazzjoni. Biex tanalizza l-pjan ta' eżekuzzjoni, uża SPPLIKA jew SPJEGA ANALIŻA skond il-magna.

Il-kummenti SQL huma ppreservati?

Iva. Kummenti inline -- kumment u kummenti b'ħafna linji /* ... */ jinżammu fil-post oriġinali tagħhom. Dan huwa essenzjali għad-dokumentazzjoni ta' mistoqsija kumplessa jew sezzjonijiet ta' mmarkar (TODO, ħjiel għall-ottimizzatur, verżjoni ta' migrazzjoni). Jekk tgħaddi l-mistoqsija lil magna li tinterpreta ħjiel ikkummentati (/*+ INDEX(...) */ fuq Oracle), huma wkoll ippreservati.

Għaliex il-kliem kjavi SQL huma kapitalizzati?

Il-kapitalizzazzjoni tal-kliem kjavi (SELECT, FROM, WHERE, JOIN) hija konvenzjoni storika li tiddistingwihom viżwalment minn identifikaturi (ismijiet ta' tabelli, kolonni). Din il-prattika tagħmel il-qari aktar faċli, speċjalment fi mistoqsijiet twal. Madankollu, l-ismijiet tat-tabelli u tal-kolonni jinżammu fil-każ oriġinali tagħhom biex jirrispettaw il-konvenzjonijiet tal-iskema (b'mod partikolari fuq PostgreSQL fejn il-każ huwa sensittiv għall-identifikaturi kkwotati).

Il-formatter jivvalida s-sintassi SQL?

Il-formatter jagħmel analiżi sintattika ħafifa li tiskopri żbalji kbar (parentesi mhux ibbilanċjati, punt u virgola nieqsa fl-aħħar tad-dikjarazzjoni, kliem prinċipali inkonsistenti). Ma jivvalidax l-eżistenza ta' tabelli u kolonni, u lanqas il-konformità ma' skema speċifika. Biex tagħmel dan, mexxi l-mistoqsija fil-mod SPPLAIN fuq id-database tiegħek, jew uża linter dedikat bħal sqlfluff.

Eżempju ta' talba

curl -X POST https://cdrn.fr/api/v1/tools/sql-formatter/execute \
  -H "Content-Type: application/json" \
  -d '{"input":"..."}'

Skema ta' input

Kamp Tip Meħtieġ Default
input text

Endpoints

  • GET https://cdrn.fr/api/v1/tools - telenka l-għodod kollha disponibbli
  • GET https://cdrn.fr/api/v1/tools/sql-formatter - tikseb l-iskema ta' din l-għodda
  • POST https://cdrn.fr/api/v1/tools/sql-formatter/execute - teżegwixxi din l-għodda b'payload JSON