Query: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
prosa
 
(131 versioni intermedie di 82 utenti non mostrate)
Riga 1:
{{nota disambigua|descrizione=l'omonima pubblicazione periodica del [[CICAP]]|titolo=Query (rivista)}}
Il termine '''query''', in [[informatica]] viene utilizzato per indicare l'interrogazione di un [[database]] in modo da ottenere dei dati contenuti in uno o più database. Solitamente una query viene ''passata'' al [[DBMS]] in linguaggio [[SQL]] (Structured Query Language). L'analisi del risultato della query è oggetto di studio dell'[[Algebra relazionale]].
{{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]].
Un altro uso del termine query è per indicare una conversazione privata tra due utenti di una chat, come ad esempio in [[Internet Relay Chat|IRC]].
 
Il risultato di una ''query'' è oggetto di studio dell'[[algebra relazionale]].
== Query SQL ==
 
==Descrizione==
Per''' Query SQL''' si intende una stringa di comando utilizzata per ottenere dati da un ''Database''. Nella fattispecie, per '''query''' si intende letteralmente 'ricerca', mentre '''SQL''' indica il linguaggio stesso di interazione con il Database. Sul mercato esistono svariate tipologie di database (MySQL, Oracle, Interbase, Postgres) che hanno sviluppato una loro specifica sintassi. Come standard di riferimento hanno pero' tutti l' SQL ANSI, anche se esistono lievi differenze tra la sintassi dei diversi SQL. Una semplice ed esemplificativa Query SQL può essere la seguente:
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 Queryquery di selezione inizia classicamente con il comando ''select''<samp>[[Select (SQL)|SELECT]]</samp>, che apre una [[Stringa (linguaggi formali)|stringa di interrogazione]] sul DBdatabase; il simbolo <samp>*</samp> (''*all'') staè perun all,[[metacarattere]] ovveroche seleziona tutti (i campi della tabella); ''from''<samp>FROM</samp> dichiara l'origine dei dati, ovvero, (nell'esempio sottostante, la TABELLA1[[tabella]] STATI).
''select * from TABELLA1''
 
Una semplice [[query SQL]] di selezione può essere la seguente:
Una Query inizia classicamente con il comando ''select'', che apre una stringa di interrogazione sul DB; ''*'' sta per all, ovvero tutti (i campi della tabella); ''from'' dichiara l'origine dei dati, ovvero, nell'esempio, la TABELLA1.
 
:<syntaxhighlight lang="sql">
Una query può contenere parametri per restringere la ricerca, introdotti abitualmente dal comando ''WHERE''. Vediamo un esempio:
''select * from TABELLA1'' STATI
</syntaxhighlight>
 
Si possono aggiungere criteri restrittivi di selezione (filtri), introdotti abitualmente attraverso la clausola aggiuntiva <samp>WHERE</samp>. Vediamo un esempio:
''select * from TABELLA1 where CAMPO1 = 1000;''
 
:<syntaxhighlight lang="sql">
In questo caso la query restituirà tra tutti i record, solo quelli che avranno nel CAMPO1 il valore 1000.
''select * from TABELLA1STATI where CAMPO1CONTINENTE = 1000"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 dalle condizioni ''and'' e ''or'', oppure combinare più query insieme (tramite la funzione Join).
 
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]].
==Voci correlate==
* [[Query language]]
 
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>).
[[Categoria:Database]]
 
=== Tipi di query ===
[[de:Datenbanksprache]]
Esistono diversi tipi di query:
[[ja:データベース言語]]
* Query di selezione: è possibile estrarre i dati (<samp>SELECT</samp>) da una o più tabelle e visualizzarli in una nuova tabella.
[[nl:Query]]
* 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.
[[pl:Zapytanie (bazy danych)]]
* 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 ==
Un altro uso delIl 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 languageannidate]]
* [[Information retrieval]]
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{FOLDOC||query}}
 
{{portale|informatica}}
 
[[Categoria:Teoria delle basi di dati]]