Quando un gestionale deve mostrare tutti gli ordini di un cliente o una dashboard deve calcolare le vendite del mese, dietro quella richiesta c’è quasi sempre una query. Capire il significato di una query in informatica aiuta a leggere meglio SQL, database e strumenti di analisi dati, distinguendo una semplice ricerca da un comando che modifica informazioni. Qui chiarisco come funziona, quali sono i principali tipi, come si applica a diversi formati di dati e quali errori possono rallentare o compromettere il risultato.
Una query trasforma una richiesta in un risultato sui dati
- Query significa interrogazione o richiesta rivolta a un sistema informatico.
- Nei database relazionali viene scritta soprattutto in SQL.
- SELECT legge i dati, mentre INSERT, UPDATE e DELETE li modificano.
- Una query può lavorare anche su JSON, API, motori di ricerca e database NoSQL.
- Filtri corretti, indici e parametri sicuri migliorano precisione e prestazioni.
Che cosa indica davvero una query in informatica
In informatica, una query è una richiesta strutturata con cui un utente o un’applicazione chiede a un sistema di trovare, elaborare o modificare dati. In italiano si può tradurre con “interrogazione”, anche se nel lavoro quotidiano il termine inglese è ormai quello più usato.
La query non è il database e non coincide necessariamente con una ricerca libera. È l’istruzione che stabilisce quali dati servono, da dove prenderli e secondo quali condizioni elaborarli. Una domanda come “quanti prodotti abbiamo venduto a Roma nel trimestre?” diventa una query quando viene espressa in un linguaggio comprensibile al database.
La definizione di Treccani mette in evidenza proprio questo aspetto: la query è una richiesta inviata a un sistema informatico per ottenere un’informazione specifica. Nella pratica, però, può fare molto di più che leggere un risultato. Può anche creare strutture, inserire record, aggiornare valori o cancellare dati, in base al linguaggio e ai permessi disponibili.
Query, ricerca e comando non sono sinonimi perfetti
Quando cerco un prodotto su un sito di e-commerce sto usando una query, anche se non vedo il codice che la compone. Quando invece lancio una query SQL, scrivo direttamente le istruzioni per interrogare il database. Il concetto comune è la richiesta di informazioni, ma cambiano il linguaggio, la struttura dei dati e il modo in cui il sistema calcola la risposta.
Una query può comparire anche in una URL, per esempio nella parte ?categoria=libri. In questo caso si parla spesso di query string: non è una query SQL, ma un insieme di parametri passato a una pagina o a un’API per filtrare o personalizzare la risposta.

Come funziona una query dentro un database
Un database relazionaleorganizza i dati in tabelle composte da righe e colonne. La query arriva al sistema di gestione del database, chiamato DBMS, che interpreta l’istruzione, controlla i permessi, sceglie un piano di esecuzione e restituisce il risultato.
Una richiesta semplice può essere scritta così:
SELECT nome, prezzo
FROM prodotti
WHERE categoria = 'Libri'
ORDER BY prezzo DESC;Questa istruzione chiede di estrarre nome e prezzo dalla tabella prodotti, limitando il risultato alla categoria “Libri” e ordinandolo dal prezzo più alto al più basso. Le parti fondamentali sono SELECT, che indica le colonne da restituire, FROM, che identifica la fonte, e WHERE, che applica il filtro.
Il percorso dalla richiesta al risultato
- Scrittura della query secondo la sintassi del linguaggio utilizzato.
- Analisi della sintassi e dei permessi da parte del DBMS.
- Ricerca dei dati nelle tabelle, negli indici o in altre strutture.
- Elaborazione di filtri, aggregazioni, ordinamenti e collegamenti.
- Restituzione del risultato all’applicazione o all’utente.
Il risultato non è sempre una semplice tabella. Può essere un singolo numero, come il totale delle vendite, un elenco di record, un documento JSON o una risposta API. In analisi dati, una query ben costruita è spesso il passaggio che trasforma dati grezzi in un indicatore utile per decidere.
I principali tipi di query SQL e il loro effetto
Dire soltanto “query SQL” non basta per capire che cosa succederà al database. Alcune istruzioni leggono senza alterare i dati, mentre altre cambiano in modo permanente il contenuto. Io considero questa distinzione fondamentale, soprattutto quando si lavora su ambienti di produzione.
| Comando | Funzione | Esempio di utilizzo | Rischio principale |
|---|---|---|---|
| SELECT | Legge ed estrae dati | Elencare gli ordini di un cliente | Risultati lenti o incompleti |
| INSERT | Inserisce nuovi record | Registrare un nuovo acquisto | Duplicati o dati incoerenti |
| UPDATE | Modifica record esistenti | Aggiornare un indirizzo | Modificare troppe righe |
| DELETE | Elimina record | Rimuovere dati autorizzati | Cancellazione irreversibile |
| CREATE o ALTER | Definisce la struttura | Creare una tabella o una colonna | Interrompere applicazioni esistenti |
Una query di selezione può includere aggregazioni come COUNT() e SUM(), utili per dashboard e report. Per esempio, GROUP BY permette di raggruppare le vendite per regione, mentre JOIN collega informazioni distribuite in più tabelle, come clienti e ordini.
SELECT regione, SUM(importo) AS totale
FROM ordini
GROUP BY regione
ORDER BY totale DESC;Il comando più delicato è spesso UPDATE, non necessariamente DELETE. Un filtro dimenticato può infatti aggiornare migliaia di righe in un istante. Prima di modificare dati, verifico sempre la stessa condizione con una SELECT e, quando possibile, uso una transazione che consenta di annullare l’operazione.
Query e formati di dati non relazionali
Il significato generale resta lo stesso anche fuori dai database relazionali, ma cambia il modo di formulare la richiesta. Con un database documentale, per esempio, i dati possono essere memorizzati come documenti JSON invece che in righe e colonne.
Un documento potrebbe contenere cliente, indirizzo e ordini nello stesso oggetto. La query cercherebbe allora documenti con proprietà specifiche, come una città o un intervallo di date. Questa struttura è flessibile, ma richiede attenzione alla coerenza dei campi e alla duplicazione delle informazioni.
| Ambiente | Come si interroga | Quando è utile |
|---|---|---|
| Database relazionale | SQL | Dati strutturati, relazioni e report complessi |
| Database documentale | Filtri su documenti JSON | Strutture variabili e applicazioni web rapide |
| API | Parametri URL o corpo JSON | Scambio di dati tra applicazioni |
| Motore di ricerca | Termini, filtri e operatori | Ricerca testuale su grandi collezioni |
| DNS | Richiesta di risoluzione di un nome | Convertire un dominio in indirizzo IP |
Per questo è riduttivo dire che una query è soltanto una ricerca su una tabella. È più corretto considerarla un meccanismo di interrogazione adattato al sistema che contiene i dati. SQL è centrale nella business intelligence, ma non è l’unico linguaggio o formato con cui si possono formulare richieste.
Come scrivere query più veloci, precise e sicure
Una query corretta può comunque essere lenta. La velocità dipende dalla quantità di dati, dalla struttura delle tabelle, dalla rete e dal piano scelto dal DBMS. Nella mia esperienza, i miglioramenti più concreti arrivano spesso da poche abitudini applicate con costanza.
- Selezionare solo le colonne necessarie invece di usare sempre
SELECT *. - Applicare filtri con WHERE il più presto possibile.
- Creare indici sui campi usati spesso per cercare, filtrare o collegare dati.
- Limitare i risultati con
LIMITo con una paginazione coerente. - Controllare il piano di esecuzione con strumenti come
EXPLAIN. - Usare query parametrizzate per separare i dati inseriti dall’utente dal codice SQL.
Gli indici funzionano come un indice analitico di un libro: evitano di leggere ogni riga quando il database può raggiungere rapidamente quelle pertinenti. Non sono però una soluzione gratuita. Ogni indice occupa spazio e può rallentare inserimenti e aggiornamenti, quindi va scelto osservando le query reali.
Leggi anche: Da XML a Excel con Power Query - guida pratica
La sicurezza viene prima della comodità
Concatenare direttamente input ricevuti da un modulo dentro una query espone al rischio di SQL injection, cioè l’inserimento di istruzioni non previste dall’applicazione. La protezione standard consiste nell’usare parametri, controllare i valori ricevuti e assegnare al database solo i permessi indispensabili.
Non basta inoltre filtrare i dati nell’interfaccia. Un utente potrebbe chiamare direttamente l’API o modificare la richiesta inviata dal browser. I controlli devono essere applicati anche sul server, con autorizzazioni, validazione e gestione corretta degli errori.
Gli errori più comuni quando si parla di query
Il primo equivoco è pensare che una query restituisca sempre tutti i dati disponibili. In realtà, un filtro errato, una condizione su un campo NULL o un collegamento tra tabelle non adatto può produrre un risultato apparentemente plausibile ma incompleto.
Un altro errore frequente riguarda WHERE e HAVING. Il primo filtra le righe prima del raggruppamento, mentre il secondo filtra i gruppi dopo un’aggregazione. Confonderli può generare errori oppure numeri diversi da quelli attesi nei report.
Molti principianti considerano poi SQL uguale in ogni database. La base è comune, ma esistono differenze tra PostgreSQL, MySQL, SQL Server, Oracle e altri sistemi, soprattutto per funzioni, tipi di dato e gestione delle date. Prima di riutilizzare una query, controllo sempre la documentazione del DBMS scelto.
Infine, una query non sostituisce la qualità dei dati. Se le date sono archiviate in formati diversi, le categorie sono scritte in modo incoerente o mancano identificativi affidabili, anche la query più elegante produrrà analisi fragili. La precisione del risultato dipende tanto dalla modellazione dei dati quanto dalla sintassi.
La query giusta parte dalla domanda giusta
Per capire una query basta ricordare questa sequenza: una domanda diventa un’istruzione, l’istruzione viene interpretata dal sistema e il sistema restituisce o modifica dati secondo regole precise. Nei database SQL la lettura passa soprattutto da SELECT, ma il concetto si applica anche a JSON, API, motori di ricerca e servizi DNS.
Quando preparo un’analisi, non parto dal comando più complesso. Definisco prima il risultato necessario, verifico quali tabelle o documenti lo contengono e solo dopo scelgo filtri, collegamenti e aggregazioni. È un approccio semplice, ma riduce gli errori e rende le query più leggibili, verificabili e utili nel tempo.
In breve, il significato di query in informatica è quello di una richiesta strutturata rivolta a dati o servizi. Imparare a formularla bene significa ottenere informazioni più affidabili, proteggere i sistemi e trasformare un archivio di dati in uno strumento concreto per decidere.
