Query: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Riga 1:
{{nota disambigua|descrizione=l'omonima rivista|titolo=[[CICAP#Pubblicazioni]]}}
{{S|informatica}}
In [[informatica]] il termine '''''query''''' viene utilizzato per indicare l'interrogazione da parte di un utente di un [[database]], strutturato tipicamente secondo il [[modello relazionale]], per compiere determinate operazioni sui [[dati]] (selezione, inserimento, cancellazione dati, aggiornamento ecc.). Solitamente una ''query'' vieneutilizza un linguaggio di interrogazione ''interpretata[[interprete (informatica)|interpretato]]'', dalrappresentato linguaggiodallo standard SQL (''[[Structured Query Language]]'') nei suoi sottolinguaggi [[Linguaggio di interrogazione|Data Query Language]] e [[Data Manipulation Language]], per renderla più comprensibile al [[DBMS]]. L'analisi del risultato della ''query'' è oggetto di studio dell'[[algebra relazionale]].
 
==Descrizione==
Riga 7:
Esistono svariati tipi di DBMS (ad es. [[MySQL]], [[Oracle]], [[Interbase]], [[Postgres]]) che hanno sviluppato una loro specifica [[sintassi (informatica)|sintassi]], anche se come [[standard (informatica)|standard]] di riferimento hanno tutti l'[[SQL]] [[ANSI]].
 
Una ''query'' di selezione inizia classicamente con il comando ''select'', che apre una stringa di interrogazione sul database; il simbolo ''*'' sta per ''all'', ovvero seleziona tutti (i campi della tabella); ''from'' dichiara l'origine dei dati, ovvero, nell'esempio, sottostante la tabella STATI.
 
Una semplice ed esemplificativa query SQL di selezione può essere la seguente:
Riga 15:
</source>
 
Si possono aggiungere criteri restrittivi di selezione (''filtri'') introdotti abitualmente dalattraverso la clausola comandoaggiuntiva ''WHERE''. Vediamo un esempio:
 
:<source lang="sql">
Riga 21:
</source>
 
In questo caso la ''query'' restituirà, tra tutti i [[record (informatica)|record]], solo quelli che avranno nel campo CONTINENTE il valore "Europa". Se al posto dell'operatore logico di confronto = si usa invece <> verranno selezionati tutti i record diversi dal valore immesso.
 
Si possono inoltre combinare più filtri di ricerca, uniti dall'[[operatore (informatica)|operatore]] [[logica booleana|logico]] ''[[and]]'' e ''[[or]]'', ottenendo una condizione per la quale una ''query'' deve essere valida, oppure combinare più ''query'' insieme (tramite la funzioneclausola [[Join (SQL)|Join]].
 
== Tipi di query==
Esistono diversi tipi di query:
 
* ''Query di selezione'': è possibile estrarre i dati (''select'') da una o più tabelle e visualizzarli in una nuova tabella.
* ''Query di accodamento'': consente di aggiungere (''insert'') a tabelle già esistenti un gruppo di [[record (informatica)|record]] in base a dei criteri specifici.
* ''Query di eliminazioneaggiornamento'': consente di cancellaremodificare (''update'') il valore di uno o più recordcampi dipendentementein daicorrispondenza criteridi inseritiun nellaintervallo creazioneselezionato di dellarecords queryesistenti.
* ''Query di eliminazione'': consente di cancellare (''delete'') uno o più record dipendentemente dai criteri inseriti nella creazione della query.
* ''Query a campi incrociati'': permette di "incrociare" i campi di più tabelle, in modo tale da ottenere una matrice in cui le righe corrispondono normalmente a campi di tipo descrittivo e riepilogativo, mentre le colonne corrispondono a totali o conteggi. Vengono chiamate anche ''query pivot'', poiché i dati che risultano alla fine della creazione sono simili alle tabelle pivot di un [[foglio di calcolo]].
* Query di aggiornamento: consente di modificare il valore di uno o più campi in corrispondenza di un intervallo selezionato di records esistenti.
 
Esistono inoltre le [[query annidate]] dove il filtro della query è dato da un'altra query.