La tua prima query utile
What you'll learn
- a scrivere query con un elenco esplicito di colonne dopo
SELECTe un filtro delle righe tramiteWHERE - a tradurre una domanda di business in SQL seguendo il percorso: entità →
FROM, vincoli →WHERE(conAND), output →SELECT, ordine →ORDER BY - a spiegare perché
SELECT *è una cattiva pratica nelle query di produzione - a verificare una query ripetendola ad alta voce: se la tua riformulazione coincide con la domanda di partenza, la query è corretta nel significato
La mappa è studiata, e QUERY cambia le regole. Finora hai osservato l'archivio nella sua interezza, come un turista; un archivista lavora in modo diverso. Sull'olopannello si spegne tutto tranne una tabella, e compare un compito: formula la domanda in modo che nella risposta non ci sia nemmeno una riga di troppo, né una colonna di troppo.
Scegliamo le colonne e le righe che servono
Prendere tutto con * è comodo per una prima esplorazione, ma nel lavoro reale è come portare alla cassa l'intero magazzino. Di solito ti servono campi precisi: elencali dopo SELECT, separati da virgole.
Con le righe vale lo stesso principio: invece dell'intera vetrina, scegli solo il segmento che ti serve tramite WHERE. Per esempio, chiediamo a Kotomarket soltanto i prodotti della categoria Libri:

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:
| name | price |
|---|---|
| SQL для профи | 1290.00 |
| Чистый код | 1490.00 |
| Алгоритмы на практике | 1690.00 |
Dalla domanda di business alla query
Le domande vere non arrivano all'archivista in SQL: «quali libri costano meno di millecinquecento?», «che cosa, nell'elettronica, costa più di 5000?». La traduzione segue sempre lo stesso percorso:
- Entità → tabella. Di che cosa parla la domanda: di prodotti, clienti, ordini? «Libri sotto i 1500» riguarda i prodotti, quindi
FROM products. - Vincoli → WHERE. Ogni condizione della domanda diventa una condizione di filtro separata: categoria «Libri», prezzo inferiore a 1500.
- Cosa mostrare → SELECT. Che cosa vuole vedere la persona nella risposta? Il nome e il prezzo: sono questi i campi da elencare, il resto è rumore.
- Forma della risposta → ORDER BY. «Dai più economici ai più cari» è un ordinamento per prezzo.
-- «Quali libri costano meno di 1500 e quanto, dai più economici ai più cari?»
SELECT name, price
FROM products
WHERE category = 'Книги' AND price < 1500
ORDER BY price;
Più condizioni si uniscono con la parola AND: vedremo gli operatori di filtro in dettaglio nel prossimo capitolo.
Un bravo archivista prende anche un'altra abitudine: legge la query finita ad alta voce come una frase. «Dai prodotti prendi i libri sotto i 1500, mostra nome e prezzo, ordina per prezzo». Se la riformulazione coincide con la domanda di partenza, la query è corretta nel significato. Se nella riformulazione spuntano «tutte le colonne» o «l'intera vetrina», torna indietro e restringi.
Interview question
Domanda da colloquio: perché SELECT * è considerato una cattiva pratica nelle query di produzione?
Risposta efficace: primo, dati superflui: rete e memoria vengono consumate per colonne che non servono, e il database perde la possibilità di rispondere usando solo l'indice (index-only scan; gli indici sono il Capitolo 10). Secondo, fragilità: se si aggiungono o rinominano colonne, possono rompersi report e codice che dipendono dall'insieme o dall'ordine delle colonne. Un elenco esplicito di colonne è il contratto della query; SELECT * va bene al massimo nell'esplorazione interattiva dei dati.
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.