Query: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
FrescoBot (discussione | contributi)
prosa
 
(44 versioni intermedie di 29 utenti non mostrate)
Riga 1:
{{nota disambigua|descrizione=l'omonima rivista|titolo=pubblicazione periodica del [[CICAP#Pubblicazioni]]|titolo=Query (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 (informaticadatabase)|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 Boole#AND|and]]''</samp> e ''<samp>[[Algebra 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 (informaticadatabase)|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 (informatica)|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]].
 
Esistono anche le query di raggruppamento, tramite cui è 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) e 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 ==
Il termine ''query'' è anche usato per indicare una conversazione privata tra due utenti di una [[chat]], come ad esempio in [[Internet Relay Chat|IRC]].
 
== Note ==
<references/>
 
== 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}}