Bunachair sonraí gan an ceo

An chéad cheist úsáideach

21 min
What you'll learn
  • ceisteanna a scríobh le liosta sainráite colún tar éis SELECT agus scagaire sraitheanna trí WHERE
  • ceist ghnó a aistriú go SQL ar an gconair: aonán → FROM, srianta → WHERE (le AND), aschur → SELECT, ord → ORDER BY
  • a mhíniú cén fáth a bhfuil SELECT * ina dhrochchleachtas i gceisteanna táirgthe
  • ceist a sheiceáil trína rá os ard: má réitíonn d’athinsint leis an mbuncheist, tá an cheist ceart ó thaobh brí

Tá an léarscáil foghlamtha — agus athraíonn QUERY na rialacha. Go dtí seo bhí tú ag breathnú ar an gcartlann iomlán mar thurasóir; oibríonn cartlannaí ar bhealach eile. Múchann gach rud ar an bpainéal holagrafach seachas tábla amháin, agus nochtann tasc: cuir do cheist sa chaoi nach mbeidh sa fhreagra oiread agus aon sraith bhreise ná aon cholún breise.

Roghnaímid na colúin agus na sraitheanna a theastaíonn

Tá sé áisiúil gach rud a thógáil le * don chéad spléachadh, ach san obair fhíor tá sé cosúil leis an stóras iomlán a tharraingt aníos go dtí an scipéad. De ghnáth teastaíonn réimsí ar leith uait: liostaigh iad, scartha le camóga, tar éis SELECT.

Tá sé mar an gcéanna leis na sraitheanna: in ionad an tseomra taispeána iomláin, roghnaigh an deighleog amháin a theastaíonn trí WHERE. Mar shampla, iarraimis ar «Kotomarket» na táirgí sa chatagóir Leabhair amháin:

Cúngaíonn dalta seomra taispeána holagrafach le léas-scagaire ómra: ní théann tríd an léas ach roinnt sraitheanna-capsúl le leabhair
Ceist bheacht don chartlann: ainmníonn SELECT na colúin a theastaíonn, ligeann WHERE tríd na sraitheanna a theastaíonn amháin.

Choosing the columns and rows you need

Grabbing everything with * is convenient for a first look, but in real work it’s like hauling the entire warehouse up to the checkout. Usually you need specific fields: list them, comma-separated, after SELECT.

It’s the same with rows: instead of the whole storefront, pick only the segment you need via WHERE. For example, let’s ask Kotomarket for only the products in the Books category:

Na leabhair atá ar an seomra taispeána agus a bpraghas:
Query result
nameprice
SQL для профи1290.00
Чистый код1490.00
Алгоритмы на практике1690.00

Ón gceist ghnó — go dtí an cheist SQL

Ní thagann fíorcheisteanna chuig an gcartlannaí in SQL: «cé na leabhair atá níos saoire ná míle go leith?», «cad as an leictreonaic atá níos daoire ná 5000?». Téann an t-aistriúchán de réir conaire amháin i gcónaí:

  1. Aonán → tábla. Faoi cad atá an cheist: faoi tháirgí, ceannaitheoirí, orduithe? «Leabhair faoi 1500» — faoi tháirgí, mar sin FROM products.
  2. Srianta → WHERE. Gach coinníoll ón gceist — coinníoll scagaire ar leith: catagóir «Leabhair», praghas faoi bhun 1500.
  3. Cad le taispeáint → SELECT. Cad ba mhaith leis an duine a fheiceáil sa fhreagra? An t-ainm agus an praghas — iad sin a liostaímid, is torann an chuid eile.
  4. Cruth an fhreagra → ORDER BY. «Ó shaor go daor» — sórtáil de réir praghais.
-- «Cé na leabhair atá níos saoire ná 1500 agus cé mhéad a chosnaíonn siad, ó shaor go daor?»
SELECT name, price
FROM products
WHERE category = 'Книги' AND price < 1500
ORDER BY price;

Nasctar roinnt coinníollacha leis an bhfocal AND — pléifimid oibreoirí an scagaire go mion sa chéad chaibidil eile.

Agus nós cúil an dea-chartlannaí: léigh an cheist chríochnaithe os ard mar abairt. «Ó tháirgí, tóg na leabhair faoi 1500, taispeáin an t-ainm agus an praghas, sórtáil de réir praghais» — má réitíonn d’athinsint leis an mbuncheist, tá an cheist ceart ó thaobh brí. Má thagann «gach colún» nó «an seomra taispeána iomlán» chun cinn i d’athinsint — fill agus cúngaigh é.

Interview question

Ceist agallaimh: cén fáth a meastar SELECT * ina dhrochchleachtas i gceisteanna táirgthe?

Freagra láidir: ar dtús, sonraí breise: caitear líonra agus cuimhne ar cholúin nach dteastaíonn, agus cailleann an bunachar an cumas freagairt ón innéacs amháin (index-only scan; is é innéacsanna Caibidil 10). Ar an dara dul síos, leochaileacht: nuair a chuirtear colúin leis nó nuair a athainmnítear iad, brisfear tuairiscí agus cód a bhraitheann ar thacar agus ord na gcolún. Is conradh na ceiste é liosta sainráite na gcolún; níl SELECT * oiriúnach ach in iniúchadh idirghníomhach sonraí.

Check yourself
Cad a thaispeánfaidh an cheist SELECT name FROM products WHERE category = 'Книги'?

The index has been read: you know what’s in the five tables and which threads stitch them together. QUERY dims the map, and the next clearance level lights up on the holopanel — the reading terminal.

QUERY: Remember the cardinal property of this place: the archive answers only well-formed questions. From the next clearance on, we learn to ask precisely.