Query: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
prosa
 
(28 versioni intermedie di 19 utenti non mostrate)
Riga 1:
{{nota disambigua|descrizione=l'omonima rivistapubblicazione periodica del [[CICAP]]|titolo=CICAP#PubblicazioniQuery (rivista)}}
{{F|basi di dati|novembre 2013}}
In [[informatica]], una '''''query''''', o '''interrogazione''', è un comando scritto dall'utente per estrarre informazioni dal contenuto di una [[base di dati]]. Quest'ultima è in genere [[Struttura dati|strutturata]] secondo il [[modello relazionale]], che permette di compiere determinate operazioni sui [[dati]] (come selezione, inserimento, cancellazione o aggiornamento).
{{S|basi di dati}}
 
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'' utilizza un linguaggio di interrogazione ''[[interprete (informatica)|interpretato]]'' rappresentato dallo [[standard (informatica)|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]].
Di solito, le interrogazioni vengono scritte in un [[linguaggio di interrogazione]] [[interprete (informatica)|interpretato]], come [[Structured Query Language|SQL]], e si interfacciano al [[Database management system|sistema di gestione della base dati]].
 
Il risultato di una ''query'' è oggetto di studio dell'[[algebra relazionale]].
 
==Descrizione==
Esistono svariati tipi di sistemi di gestione, detti [[Database management system|DBMS]] (adper es. [[MySQL]], [[Oracle Database|Oracle]], [[Interbase]], [[Postgres]]), che hanno sviluppato una loro specifica [[sintassi (informatica)|sintassi]], anche sema come [[standard (informatica)|standard]] di riferimento hanno tutti l'[[SQL]] [[ANSI]].
 
Una ''query'' di selezione inizia classicamente con il comando ''select''<samp>[[Select (SQL)|SELECT]]</samp>, che apre una [[Stringa (linguaggi formali)|stringa di interrogazione]] sul database; il simbolo ''<samp>*'' sta per</samp> (''all'') ovveroè un [[metacarattere]] che seleziona tutti i campi della tabella; ''from''<samp>FROM</samp> dichiara l'origine dei dati, ovvero (nell'esempio sottostante, la [[tabella]] STATI).
 
Una semplice ed esemplificativa [[query SQL]] di selezione può essere la seguente:
 
:<sourcesyntaxhighlight lang="sql">
select * from STATI
</syntaxhighlight>
</source>
 
Si possono aggiungere criteri restrittivi di selezione (''filtri''), introdotti abitualmente attraverso la clausola aggiuntiva ''<samp>WHERE''</samp>. Vediamo un esempio:
 
:<sourcesyntaxhighlight lang="sql">
select * from STATI where CONTINENTE = "Europa";
</syntaxhighlight>
</source>
 
In questo caso, la ''query'' restituirà, tra tutti i [[record (database)|record]], solo quelli che avranno nel campo <samp>CONTINENTE</samp> il valore "<samp>Europa</samp>". Se al posto dell'operatore logico di confronto <samp>=</samp> si usa invece <samp><></samp> 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]] ''<samp>[[Algebra_di_BooleAlgebra di Boole#AND|and]]''</samp> e ''<samp>[[Algebra_di_BooleAlgebra di Boole#OR|or]]''</samp>, ottenendo una condizione per la quale una ''query'' deve essere valida oppure combinare più ''query'' insieme tramite la clausola [[Join (SQL)|Join]].
 
Le operazioni tipiche di query che saranno possibili su una tabella, precedentementegià definita e creata nella sua struttura tramite il [[Data Definition Language]] (DDL), sono quelle riassunte nell'acronimo [[CRUD]], ovvero: C, creazione o inserimento dei record (''insert''<samp>INSERT</samp>),; R, lettura (''select''<samp>SELECT</samp>),; U, aggiornamento (''update''<samp>UPDATE</samp>),; D cancellazione (''delete''<samp>DELETE</samp>).
 
=== Tipi di query ===
Esistono diversi tipi di query:
* ''Query di selezione'': è possibile estrarre i dati (''select''<samp>SELECT</samp>) da una o più tabelle e visualizzarli in una nuova tabella.
* ''Query di accodamento'': consente di aggiungere (''insert''<samp>INSERT</samp>) a tabelle già esistenti un gruppo di [[record (database)|record]] in base a dei criteri specifici.
* ''Query di aggiornamento'': consente di modificare (''update''<samp>UPDATE</samp>) il valore di uno o più campi in corrispondenza di un intervallo selezionato di records esistenti.
* ''Query di eliminazione'': consente di cancellare (''delete''<samp>DELETE</samp>) uno o più record dipendentemente dai criteri inseriti nella creazione della query. <ref>{{cita web|url=https://support.microsoft.com/it-it/office/introduzione-alle-query-a9739a09-d3ff-4f36-8ac3-5760249fb65c|titolo=Introduzione alle query}}</ref>
* ''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 ''creazione tabella'': se lo si desidera, le righe prodotte da una query possono anche alimentare i record di una nuova tabella mediante una query di creazione tabella, facendo sempre riferimento alla scheda Struttura, gruppo Tipo di query. <ref>{{cita web|url=https://syrusindustry.com/wiki/query|titolo=TIPOLOGIE DI QUERY}}</ref>
 
Esistono inoltre le [[query annidate]], dovein cui il filtro della query è dato da un'altra 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 (database)|record]] in base a dei criteri specifici.
* ''Query di aggiornamento'': consente di modificare (''update'') il valore di uno o più campi in corrispondenza di un intervallo selezionato di records esistenti.
* ''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 ''creazione tabella'': se lo si desidera, le righe prodotte da una query possono anche alimentare i record di una nuova tabella mediante una query di creazione tabella, facendo sempre riferimento alla scheda Struttura, gruppo Tipo di query
 
Esistono anche le '''query di raggruppamento''', tramite dovecui è possibile raggruppare righe in base ad uno o più campi. in questo caso, ogni gruppo è costituito da righe aventi dati uguali nel campo indicato (detto appunto campo raggruppato) ede occuperà una sola riga dell'elenco prodotto dalla query. Le principali funzioni native di Access da applicare ad ogni raggruppamento sono quelle di somma, conteggio, media, minimo e massimo.
Esistono inoltre le [[query annidate]] dove il filtro della query è dato da un'altra query.
 
== Altri ambiti ==
Esistono anche le '''query di raggruppamento''' dove è possibile raggruppare righe in base ad uno o più campi. in questo caso, ogni gruppo è costituito da righe aventi dati uguali nel campo indicato (detto appunto campo raggruppato) ed occuperà una sola riga dell'elenco prodotto dalla query. Le principali funzioni native di Access da applicare ad ogni raggruppamento sono quelle di somma, conteggio, media, minimo e massimo
Il termine ''query'' è anche usato per indicare una conversazione privata tra due utenti di una [[chat]], come ad esempio in [[Internet Relay Chat|IRC]].
 
==Altri ambitiNote ==
<references/>
Il termine ''query'' è anche usato per indicare una conversazione privata tra due utenti di una [[chat]], come ad esempio in [[Internet Relay Chat|IRC]].
 
== Voci correlate ==
* [[DatabaseBase di dati]]
* [[SQL]]
* [[DataLinguaggio Querydi Languageinterrogazione]]
* [[Linguaggio di manipolazione dei dati]]
* [[Data Manipulation Language]]
* [[Query annidate]]
* [[Information retrieval]]
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{FOLDOC||query}}
 
{{portale|informatica}}