Formáidigh agus indeantáil ceist SQL

formáidíonn do chuid ceisteanna SQL chun iad a dhéanamh inléite agus intuigthe, ag éascú forbairt agus cothabháil

Cén fáth formáidiú SQL?

Cuidíonn formáidiú SQL le fiosruithe SQL a dhéanamh níos inléite agus níos sothuigthe d’fhorbróirí agus riarthóirí bunachar sonraí. Éascaíonn sé seo dífhabhtú, athbhreithniú cód agus leas iomlán a bhaint as iarratais. Tá SQL dea-fhormáidithe riachtanach chun cáilíocht an chóid a chothabháil agus chun comhoibriú go héifeachtach ar laistigh d’fhoireann forbartha.

Cineálacha Iarratas SQL tacaithe

Tacaíonn an uirlis seo le gach cineál fiosrúchán SQL, lena n-áirítear SELECT, INSERT, Update, Scrios, chomh maith le cruthú táblaí agus treoracha modhnú (CREATE, ALTER, DROP).

Conas ceisteanna SQL a fhormáidiú

Ar an leathanach formáidithe, is féidir leat do cheist SQL a fhormáidiú trína ghreamú isteach sa bhosca téacs atá ar fáil chun na críche seo.

Chomh luath agus a chuirtear isteach an cheist SQL, déanfar é a fhormáidiú agus a thaispeáint i mbosca torthaí. Má tá an cheist neamhbhailí, taispeánfar earráid agus léiriú ar nádúr na faidhbe.

Úsáid SQL formáidithe

Is féidir leat an SQL formáidithe a chóipeáil trí úsáid a bhaint as an gcnaipe cóip a chuirtear ar fáil chun na críche seo. This will facilitate ceisteanna SQL a chomhtháthú i do thionscadail nó tuarascálacha.

Ba cheart go mbeadh cuma mar seo ar do chód SQL:


SELECT u.id, u.name, u.email,
       p.product_ainm, p.price,
       o.ord_dháta, o.quantity,
       (SELECT SUM(p2.price * o2.quantity)
        Ó orduithe o2
        JOIN táirgí p2 AR o2.product_id = p2.id
        ÁIT o2.user_id = u.id) mar total_spent
Ó úsáideoirí u
Glac le horduithe o AR u.id = o.user_id
JOIN táirgí p AR o.product_id = p.id
ÁIT IN (
    SELECT user_id
    Ó orduithe
    WHERE order_date >= '2023-01-01' AGUS order_date <= '2023-12-31'
    GRÚPA DE RÉIR aitheantais úsáideora
    AG TÁ COUNT(*) > 5
)
AGUS p.praghas > 50
ORDÚ AG u.name ASC, o.order_date DESC
TEORANTA 10;

    

Ceisteanna coitianta

Cé na canúintí SQL a dtacaítear leo: MySQL, PostgreSQL, Freastalaí SQL?

Aithníonn an t-oiliúnóir comhréir chaighdeánach SQL (ANSI) chomh maith leis na príomh-síntí MySQL, PostgreSQL, SQL Server (T-SQL), Oracle (PL/SQL) agus SQLite. Tá na heochairfhocail a bhaineann go sonrach le gach inneall (LIMIT de MySQL agus PostgreSQL, TOP de SQL Server, RETURNING de PostgreSQL, MERGE) eangaithe i gceart. Coimeádtar feidhmeanna dúchasacha a bhaineann go sonrach le hinneall mar atá gan bailíochtú.

An láimhseálann an formáidí CTEanna agus ceisteanna athfhillteacha?

Tá. Déantar CTEanna (Sloinn Tábla Coitianta) a dhearbhaítear le WITH ... AS (...) a eangú ar a mbloc féin, agus aithnítear CTEanna athfhillteacha (WITH RECURSIVE). Fágann sé sin go mbíonn ceisteanna casta i bhfad níos inléite, lena n-áirítear ordlathais (crainn, graif) agus fuinneoga sleamhnáin. Tá focheisteanna comhghaolmhara ailínithe freisin lena raon feidhme tuismitheora.

Cad é an difríocht idir formáidí SQL agus optamóir fiosrúcháin?

Ní athraíonn formáidí SQL séimeantaic an fhiosrúcháin: ní dhéanann sé ach an cód a atheagrú go amhairc (sosanna líne, eangú, cás eochairfhocail). Athscríobhann optamóir an cheist nó molann sé modhnuithe (innéacsanna in easnamh, nascann sé chun atheagrú, focheisteanna le claochlú ina nascanna) chun feidhmíocht a fheabhsú. Chun an plean feidhmithe a anailísiú, úsáid EXPLAINMÍNIÚ ANAILÍS ag brath ar an inneall.

An bhfuil nótaí tráchta SQL caomhnaithe?

Tá. Coinnítear tráchtanna inlíne -- trácht agus nótaí tráchta illíne /* ... */ ina mbunáit. Tá sé seo riachtanach chun ceist chasta nó codanna marcála a dhoiciméadú (TODO, leid don optimizer, leagan aistrithe). Má chuireann tú an cheist ar aghaidh chuig inneall a léirmhíníonn leideanna tráchta (/*+ INDEX(...) */ ar Oracle), coimeádtar iad freisin.

Cén fáth a bhfuil eochairfhocail SQL caipitlithe?

Is coinbhinsiún stairiúil é caipitliú eochairfhocail (SELECT, FROM, WHERE, JOIN) a dhéanann idirdhealú idir iad agus aitheantóirí (ainmneacha táblaí, colúin). Déanann an cleachtas seo léitheoireacht níos éasca, go háirithe i bhfiosruithe fada. Coinnítear ainmneacha táblaí agus colúin ina gcás bunaidh, áfach, chun cloí le coinbhinsiúin scéimre (go háirithe ar PostgreSQL áit a bhfuil cás íogair d’aitheantóirí luaite).

An ndéanann an formáidí an chomhréir SQL a bhailíochtú?

Déanann an formáideoir anailís chomhréire éadrom a aimsíonn ollearráidí (lúibíní neamhchothromaithe, leathstad in easnamh ag deireadh an ráitis, eochairfhocail neamhréireacha). Ní bhailíochtaíonn sé go bhfuil táblaí agus colúin ann, ná comhréireacht le scéimre ar leith. Chun é seo a dhéanamh, rith an cheist sa mhód EXPLAIN ar do bhunachar sonraí, nó úsáid línéar tiomnaithe ar nós sqlfluff.

Sampla iarratais

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

Scéimre ionchuir

Réimse Cineál Riachtanach Réamhshocrú
input text

Críochphointí

  • GET https://cdrn.fr/api/v1/tools - liostaíonn na huirlisí go léir atá ar fáil
  • GET https://cdrn.fr/api/v1/tools/sql-formatter - faigh scéimre na huirlise seo
  • POST https://cdrn.fr/api/v1/tools/sql-formatter/execute - rith an uirlis seo le pálasta JSON