Query: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
prosa
 
(149 versioni intermedie di 98 utenti non mostrate)
Riga 1:
{{nota disambigua|descrizione=l'omonima pubblicazione periodica del [[CICAP]]|titolo=Query (rivista)}}
{{Da_aiutare|motivo=WND|data=28/06/05}} Estrazione di dati secondo criteri richiesti derivante da uno o più file contenuti in uno o più database
{{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).
 
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]] (per es. [[MySQL]], [[Oracle Database|Oracle]], [[Interbase]], [[Postgres]]), che hanno sviluppato una loro specifica [[sintassi (informatica)|sintassi]], ma come [[standard (informatica)|standard]] di riferimento hanno tutti l'[[SQL]] [[ANSI]].
 
Una query di selezione inizia classicamente con il comando <samp>[[Select (SQL)|SELECT]]</samp>, che apre una [[Stringa (linguaggi formali)|stringa di interrogazione]] sul database; il simbolo <samp>*</samp> (''all'') è un [[metacarattere]] che seleziona tutti i campi della tabella; <samp>FROM</samp> dichiara l'origine dei dati (nell'esempio sottostante, la [[tabella]] STATI).
 
Una semplice [[query SQL]] di selezione può essere la seguente:
 
:<syntaxhighlight lang="sql">
select * from STATI
</syntaxhighlight>
 
Si possono aggiungere criteri restrittivi di selezione (filtri), introdotti abitualmente attraverso la clausola aggiuntiva <samp>WHERE</samp>. Vediamo un esempio:
 
:<syntaxhighlight lang="sql">
select * from STATI where CONTINENTE = "Europa";
</syntaxhighlight>
 
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 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, già 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 (<samp>INSERT</samp>); R, lettura (<samp>SELECT</samp>); U, aggiornamento (<samp>UPDATE</samp>); D cancellazione (<samp>DELETE</samp>).
 
=== Tipi di query ===
Esistono diversi tipi di query:
* Query di selezione: è possibile estrarre i dati (<samp>SELECT</samp>) da una o più tabelle e visualizzarli in una nuova tabella.
* Query di accodamento: consente di aggiungere (<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 (<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 (<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]], in cui il filtro della query è dato da un'altra query.
 
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.
 
== 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 ==
* [[Base di dati]]
* [[SQL]]
* [[Linguaggio di interrogazione]]
* [[Linguaggio di manipolazione dei dati]]
* [[Query annidate]]
* [[Information retrieval]]
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{FOLDOC||query}}
 
{{portale|informatica}}
 
[[Categoria:Teoria delle basi di dati]]