Introduzione al linguaggio SQL per Access

Importante :  Il presente articolo è stato tradotto automaticamente, vedere la dichiarazione di non responsabilità. Per visualizzare la versione inglese dell'articolo, fare clic qui.

Quando si desidera recuperare dati da un database, chiedere per i dati usando Structured Query Language o SQL. SQL è un linguaggio di computer che assomiglia molto alla inglese riconoscibili programmi di database. La conoscenza SQL è importante in quanto ogni query di Microsoft Access utilizza SQL. Comprendere il funzionamento di SQL consente di creare query più efficaci e può risultare più facile per la correzione di una query quando non restituisce risultati che si desidera.

Nota : Non è possibile modificare il codice SQL per una query Web.

Contenuto dell'articolo

Che cos'è SQL?

Base clausole SQL: SELECT, FROM e WHERE

Ordinare i risultati: ORDER BY

Utilizzo dei dati riepilogati: GROUP BY e HAVING

Combinare i risultati della query: unione

Altre informazioni, vedere la clausola SELECT

Altre informazioni, vedere la clausola FROM

Altre informazioni, vedere la clausola WHERE

Informazioni su SQL

SQL è un linguaggio di computer per l'utilizzo di set di fatti e le relazioni tra di esse. Programmi di database relazionali, ad esempio l'accesso, utilizzano SQL per lavorare con i dati. Ad esempio molti linguaggi di computer, SQL è uno standard internazionale riconosciuta da enti standard, ad esempio ISO e ANSI.

Usare SQL per descrivere set di dati che consentano di rispondere alle domande. Per SQL, è necessario usare la sintassi corretta. Per sintassi si intende la serie di regole in base alle quali gli elementi di un linguaggio vengono combinati correttamente. La sintassi di SQL si basa su quella della lingua inglese e usa molti elementi uguali a quelli della sintassi di Visual Basic, Applications Edition (VBA).

Ad esempio, una semplice istruzione SQL per il recupero di un elenco di cognomi di contatti il cui nome è Mary può essere simile alla seguente:

SELECT Last_Name
FROM Contacts
WHERE First_Name = 'Mary';

Nota : SQL non viene usata solo per la modifica dei dati, ma anche per la creazione e modifica la struttura degli oggetti di database, ad esempio le tabelle. La parte di SQL che viene utilizzato per la creazione e la modifica di oggetti di database è denominata definizione dei dati (Data Definition language). In questo argomento viene illustrata la DDL. Per ulteriori informazioni, vedere l'articolo creare o modificare tabelle o indici utilizzando una query di definizione dati.

Istruzioni SELECT

Per descrivere un set di dati tramite SQL, è necessario scrivere un'istruzione SELECT. Un'istruzione SELECT contiene la descrizione completa del set di dati che si desidera ottenere da un database. Nella descrizione sono incluse le informazioni seguenti:

  • Le tabelle che contengono i dati.

  • Il tipo di relazione tra dati di origini diverse.

  • I campi o i calcoli che generano i dati.

  • Criteri di dati devono soddisfare per essere inclusi.

  • L'eventuale ordinamento dei risultati.

Clausole SQL

Un'istruzione SQL è composta da clausole, ognuna delle quali esegue una funzione dell'istruzione SQL stessa. In un'istruzione SELECT alcune clausole sono obbligatorie. Nella tabella seguente sono elencate le clausole SQL più comuni.

Clausola SQL

Funzione

Obbligatoria

SELECT

Elenca i campi che contengono i dati di interesse.

FROM

Elenca le tabelle che contengono i campi elencati nella clausola SELECT.

WHERE

Specifica i criteri di campo che ogni record deve soddisfare perché sia incluso nei risultati.

No

ORDER BY

Specifica il tipo di ordinamento dei risultati.

No

GROUP BY

In un'istruzione SQL contenente funzioni di aggregazione, elenca i campi non riepilogati nella clausola SELECT.

Solo se sono presenti campi di questo tipo

HAVING

In un'istruzione SQL contenente funzioni di aggregazione, specifica le condizioni che si applicano ai campi riepilogati nell'istruzione SELECT.

No

Termini SQL

Ogni clausola SQL è costituita da termini , paragonabili a parti del discorso. Nella tabella seguente sono elencati alcuni tipi di termini SQL.

Termine SQL

Parte del discorso analoga

Definizione

Esempio

identificatore

nome

Nome utilizzato per identificare un oggetto di database, ad esempio il nome di un campo.

Clienti.[Numero telefono]

operatore

Verbo o avverbio

Parola chiave che rappresenta un'azione o modifica un'azione.

AS

Costante

nome

Valore che non viene modificato, ad esempio un numero o NULL.

42

Espressione

aggettivo

Combinazione di identificatori, operatori, costanti e funzioni che restituisce un unico valore.

>= Prodotti.[Prezzo unitario]

Torna all'inizio

Clausole SQL fondamentali: SELECT, FROM e WHERE

In generale, un'istruzione SQL si presenta nella forma seguente:

SELECT field_1
FROM table_1
WHERE criterion_1
;

Note : 

  • In Access le interruzioni di riga all'interno delle istruzioni SQL vengono ignorate. Per consentire una migliore leggibilità delle istruzioni SQL create, tuttavia, è consigliabile utilizzare una riga per ogni clausola.

  • Ogni istruzione SELECT termina con un punto e virgola (;). Il punto e virgola può trovarsi alla fine dell'ultima clausola o in una riga a sé stante alla fine dell'istruzione SQL stessa.

Esempio in Access

Nell'esempio seguente viene illustrato come appare in Access un'istruzione SQL per una semplice query di selezione:

Scheda di oggetto SQL con istruzione SELECT

1. Clausola SELECT

2. Clausola FROM

3. Clausola WHERE

Questa istruzione SQL di esempio significa "Seleziona i dati memorizzati nei campi denominati E-mail Address e Company della tabella denominata Contacts, per la precisione i record in cui il valore del campo City è Seattle."

Esaminiamo ora l'esempio, una clausola alla volta, per comprendere il funzionamento della sintassi SQL.

Clausola SELECT

SELECT [E-mail Address], Company

Questa è la clausola SELECT. È costituita da un operatore (SELECT) seguito da due identificatori ([E-mail Address] e Company).

Se un identificatore contiene spazi o caratteri speciali (ad esempio "E-mail Address"), deve essere racchiuso tra parentesi quadre.

Nella clausola SELECT non è necessario specificare le tabelle che contengono i campi e non è possibile specificare le condizioni che i dati devono soddisfare perché siano inclusi nei risultati.

In un'istruzione SELECT, la clausola SELECT deve sempre precedere la clausola FROM.

Clausola FROM

FROM Contacts

Questa è la clausola FROM. È costituita da un operatore (FROM) seguito da un identificatore (Contacts).

Nella clausola FROM non sono elencati i campi da selezionare.

Clausola WHERE

WHERE City="Seattle"

Questa è la clausola WHERE. È costituita da un operatore (WHERE) seguito da un'espressione (City="Seattle").

Nota : A differenza delle clausole SELECT e FROM, la clausola WHERE non rappresenta un elemento obbligatorio di un'istruzione SELECT.

È possibile eseguire molte delle azioni SQL consente di eseguire utilizzando SELECT, FROM e clausola WHERE. Altre informazioni su come Utilizzare le clausole presentate in queste sezioni alla fine di questo articolo:

Altre informazioni, vedere la clausola SELECT

Altre informazioni, vedere la clausola FROM

Altre informazioni, vedere la clausola WHERE

Ordinamento dei risultati: ORDER BY

Analogamente a Microsoft Office Excel, Access consente di ordinare i risultati delle query in un foglio dati. È inoltre possibile specificare nella query come si desidera ordinare i risultati quando la query viene eseguita, utilizzando una clausola ORDER BY. Se si utilizza una clausola ORDER BY, questa deve essere l'ultima clausola dell'istruzione SQL.

La clausola ORDER BY contiene l'elenco dei campi che si desidera utilizzare per l'ordinamento, nello stesso ordine in cui si desidera ordinarli.

Si supponga, ad esempio, di ordinare i risultati prima in base al valore del campo Company in ordine decrescente e,  se per alcuni record il valore di Company è lo stesso , di ordinare questi ultimi in base al valore del campo E-mail Address in ordine crescente. In questo caso, la clausola ORDER BY è simile alla seguente:

ORDER BY Company DESC, [E-mail Address]

Nota : Per impostazione predefinita, Access dispone i valori in ordine crescente (dalla A alla Z, dal più piccolo al più grande). Per disporli in ordine decrescente, usare la parola chiave DESC.

Per altre informazioni sulla clausola ORDER BY, vedere l'argomento Clausola ORDER BY.

Torna all'inizio

Utilizzo di dati riepilogati: GROUP BY e HAVING

In alcuni casi è necessario utilizzare dati riepilogati, ad esempio il totale delle vendite di un mese o gli articoli più costosi di un magazzino. A tale scopo, nella clausola SELECT è possibile applicare una funzione di aggregazione a un campo. Se, ad esempio, si desidera che la query mostri il totale degli indirizzi di posta elettronica elencati per ogni società, la clausola SELECT può essere simile alla seguente:

SELECT COUNT([E-mail Address]), Company

Le funzioni di aggregazione che è possibile utilizzare dipendono dal tipo dei dati presenti nel campo o nell'espressione che si desidera utilizzare. Per ulteriori informazioni sulle funzioni di aggregazione disponibili, vedere l'articolo Funzioni di aggregazione SQL.

Indicazione di campi non utilizzati in una funzione di aggregazione: clausola GROUP BY

Quando si utilizzano funzioni di aggregazione, è di solito necessario creare inoltre una clausola GROUP BY. In una clausola GROUP BY sono elencati tutti i campi a cui una funzione di aggregazione non viene applicata. Se si applicano funzioni di aggregazione a tutti i campi di una query, non è necessario creare la clausola GROUP BY.

La clausola GROUP BY segue immediatamente la clausola WHERE o la clausola FROM, se la clausola WHERE non è presente. Nella clausola GROUP BY sono elencati i campi nell'ordine in cui sono presentati nella clausola SELECT.

Se, riprendendo l'esempio precedente, nella clausola SELECT viene applicata una funzione di aggregazione al campo [E-mail Address] ma non al campo Company, la clausola GROUP BY sarà simile alla seguente:

GROUP BY Company

Per altre informazioni sulla clausola GROUP BY, vedere l'argomento Clausola GROUP BY.

Limitazione dei valori aggregati usando i criteri di gruppo: il Clausola HAVING

Se si desidera utilizzare criteri per limitare i risultati ma il campo a cui si desidera applicare i criteri è utilizzato in una funzione di aggregazione, non è possibile utilizzare una clausola WHERE. In questo caso si utilizza una clausola HAVING. La clausola HAVING funziona in modo analogo alla clausola WHERE ma viene utilizzata per dati di aggregazione.

Si supponga, ad esempio, di utilizzare la funzione COUNT, che calcola un valore medio, con il primo campo della clausola SELECT:

SELECT COUNT([E-mail Address]), Company

Se si desidera limitare i risultati della query in base al valore della funzione Conteggio, non è possibile utilizzare un criterio per questo campo nella clausola WHERE. È invece possibile inserire il criterio in una clausola HAVING. Se, ad esempio, si desidera che la query restituisca righe solo se alla società (Company) sono associati più indirizzi di posta elettronica (E-mail Address), la clausola HAVING sarà simile alla seguente:

HAVING COUNT([E-mail Address])>1

Nota : All'interno di una query possono essere presenti una clausola WHERE e una clausola HAVING . I criteri per i campi non utilizzati in una funzione di aggregazione fanno parte della clausola WHERE e i criteri per i campi utilizzati all'interno di funzioni di aggregazione fanno parte della clausola HAVING.

Per altre informazioni sulla clausola HAVING, vedere l'argomento Clausola HAVING.

Torna all'inizio

Combinazione dei risultati di query: UNION

Se si desidera rivedere contemporaneamente, come set combinato, tutti i dati restituiti da più query di selezione analoghe, è possibile utilizzare l'operatore UNION.

L'operatore UNION consente di combinare due istruzioni SELECT in una sola. Le istruzioni SELECT combinate devono avere lo stesso numero di campi di output, nello stesso ordine e con tipi di dati uguali o compatibili. Quando la query viene eseguita, i dati di ogni set di campi corrispondenti vengono combinati in un unico campo di output. L'output della query avrà quindi lo stesso numero di campi di ognuna delle istruzioni SELECT.

Nota : Ai fini di una query di unione, i tipi di dati Numerico e Testo sono compatibili.

Quando si utilizza l'operatore UNION, è inoltre possibile specificare se i risultati della query devono includere eventuali righe duplicate. A tale scopo, utilizzare la parola chiave ALL.

Di seguito è riportata la sintassi SQL di base per una query di unione che combina due istruzioni SELECT:

SELECT field_1
FROM table_1
UNION [ALL]
SELECT field_a
FROM table_a
;

Si supponga, ad esempio, di avere una tabella denominata Products e un'altra denominata Services. In entrambe le tabelle sono presenti campi che contengono il nome del prodotto o del servizio, il prezzo, la disponibilità di una garanzia o un'assicurazione e l'eventuale offerta esclusiva del prodotto o del servizio. Anche se nella tabella Products sono memorizzate informazioni relative a una garanzia, mentre nella tabella Services sono memorizzate informazioni relative a un'assicurazione, le informazioni sono fondamentalmente le stesse, ovvero specificano se un particolare prodotto o servizio viene fornito con una promessa di qualità. Utilizzando una query di unione come quella riportata di seguito è possibile combinare i quattro campi delle due tabelle:

SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services
;

Per ulteriori informazioni su come combinare le istruzioni SELECT mediante l'operatore di unione, vedere l'articolo combinare i risultati di più query di selezione utilizzando una query di unione.

Torna all'inizio

Ulteriori informazioni sulla clausola SELECT

In un'istruzione SELECT la clausola SELECT vengono elencati i campi che contengono dati che si desidera utilizzare.

Utilizzare parentesi quadre per racchiudere gli identificatori

È possibile racchiudere tra parentesi quadre il nome di un campo in una clausola SELECT. Se il nome non contiene spazi o caratteri speciali, ad esempio segni di punteggiatura, le parentesi quadre sono facoltative. Se il nome contiene spazi o caratteri speciali, le parentesi sono obbligatorie.

Suggerimento : Un nome che contiene spazi sia più facilmente leggibile e consente di risparmiare tempo quando si progettano moduli e report, ma potrebbe essere necessario apportare ulteriori digitare quando si scrivono istruzioni SQL. È necessario considerare questo fatto se hanno nomi di oggetti nel database.

Se nell'istruzione SQL sono presenti due o più campi con lo stesso nome, nella clausola SELECT è necessario aggiungere al nome di ognuno il nome dell'origine dati corrispondente. Il nome dell'origine dati deve essere lo stesso utilizzato nella clausola FROM.

Selezionare tutti i campi

Se si desidera includere tutti i campi di un'origine dati, è possibile elencarli a uno a uno nella clausola SELECT oppure utilizzare il carattere jolly asterisco (*). Quando si utilizza l'asterisco, Access determina al momento dell'esecuzione della query quali campi sono presenti all'interno dell'origine dati e li include tutti nella query. Questo garantisce che la query sia aggiornata in caso di aggiunta di nuovi campi all'origine dati.

In un'istruzione SQL è possibile utilizzare l'asterisco con una o più origini dati. Se si utilizza l'asterisco e sono presenti più origini dati, è necessario indicare il nome dell'origine dati con l'asterisco per consentire ad Access di determinare l'origine dati di cui si desidera includere tutti i campi.

Si supponga ad esempio di voler selezionare tutti i campi della tabella Ordini (Orders), ma solo il campo Indirizzo posta elettronica (E-mail Address) della tabella Contatti (Contacts). La clausola SELECT sarà simile alla seguente:

SELECT Orders.*, Contacts.[E-mail Address]

Nota : Tenere traccia del momento in cui si utilizza l'asterisco. Se in seguito vengono aggiunti nuovi campi all'origine dati e tale aggiunta non è stata pianificata, i risultati della query potrebbero essere diversi da quelli desiderati.

Selezionare valori distinti

Se si sa che l'istruzione selezionerà dati ridondanti e si preferisce visualizzare solo dati distinti, è possibile utilizzare la parola chiave DISTINCT all'interno della clausola SELECT. Si supponga ad esempio che ognuno dei clienti rappresenti interessi diversi, per alcuni dei quali viene utilizzato lo stesso numero di telefono. Per assicurarsi che ogni numero di telefono venga visualizzato una sola volta, la clausola SELECT deve essere la seguente:

SELECT DISTINCT [txtCustomerPhone]

Utilizzare nomi sostitutivi per campi o espressioni: parola chiave AS

Nella visualizzazione Foglio dati per qualsiasi campo è possibile modificare l'etichetta visualizzata utilizzando la parola chiave AS e un alias di campo nella clausola SELECT. Un alias di campo è un nome assegnato a un campo in una query per rendere più leggibili i risultati. Se ad esempio si desidera selezionare i dati di un campo denominato txtCustPhone, contenente numeri di telefono di clienti, è possibile migliorare la leggibilità dei risultati utilizzando un alias di campo nell'istruzione SELECT, come segue:

SELECT [txtCustPhone] AS [Customer Phone]

Nota : L'utilizzo di un alias di campo è obbligatorio quando nella clausola SELECT viene utilizzata un'espressione.

Selezionare tramite un'espressione

In alcuni casi si desidera esaminare calcoli basati sui dati o recuperarla solo parte dei dati del campo. Ad esempio, si supponga che si desidera tornare l'anno che i clienti nasciti, in base ai dati nel campo Data di nascita del database. La clausola SELECT potrebbe simile al seguente:

SELECT DatePart("yyyy",[BirthDate]) AS [Birth Year]

Questa espressione è costituita il funzione DatePart e due argomenti, ovvero "yyyy" (costante) e [BirthDate] (un identificatore).

È possibile utilizzare qualsiasi espressione valida come campo se l'output dell'espressione è costituito da un unico valore quando viene fornito un unico valore di input.

Torna all'inizio

Ulteriori informazioni sulla clausola FROM

Nella clausola FROM di un'istruzione SELECT sono specificate le tabelle o le query che contengono i dati utilizzati dalla clausola SELECT.

Supponendo che si desideri conoscere il numero di telefono di un cliente specifico e che la tabella contenente il campo in cui è memorizzata tale informazione sia denominata tblCustomer, la clausola FROM sarà simile alla seguente:

FROM tblCustomer

Utilizzare parentesi quadre per racchiudere gli identificatori

È possibile racchiudere il nome tra parentesi quadre. Se il nome non contiene spazi o caratteri speciali, ad esempio segni di punteggiatura, le parentesi quadre sono facoltative. Se il nome contiene spazi o caratteri speciali, le parentesi sono obbligatorie.

Suggerimento : Un nome che contiene spazi sia più facilmente leggibile e consente di risparmiare tempo quando si progettano moduli e report, ma potrebbe essere necessario apportare ulteriori digitare quando si scrivono istruzioni SQL. È necessario considerare questo fatto se hanno nomi di oggetti nel database.

Utilizzare nomi sostitutivi per le origini dati

Per fare riferimento a un'origine dati in un'istruzione SELECT è possibile utilizzare un nome diverso inserendo un alias di tabella nella clausola FROM. Un alias di tabella è un nome assegnato a un'origine dati in una query quando si utilizza un'espressione come origine dati o per rendere l'istruzione SQL più semplice da digitare e da leggere. Ciò è particolarmente utile se il nome dell'origine dati è lungo o difficile da digitare, soprattutto quando più campi di diverse tabelle hanno lo stesso nome.

Se ad esempio si desidera selezionare i dati di due campi, entrambi denominati ID, uno dei quali appartiene alla tabella tblCustomer e l'altro alla tabella tblOrder, la clausola SELECT sarà simile alla seguente:

SELECT [tblCustomer].[ID], [tblOrder].[ID]

L'utilizzo di alias di tabella nella clausola FROM consente di semplificare la digitazione della query. La clausola FROM con alias di tabella può essere simile alla seguente:

FROM [tblCustomer] AS [C], [tblOrder] AS [O]

È quindi possibile utilizzare gli alias di tabella nella clausola SELECT, come segue:

SELECT [C].[ID], [O].[ID]

Nota : Quando si utilizza un alias di tabella, nell'istruzione SQL è possibile fare riferimento all'origine dati interessata tramite l'alias o il nome completo dell'origine dati.

Unire in join dati correlati

Quando è necessario combinare coppie di record di due origini dati diverse in un unico record all'interno dei risultati di una query, è possibile eseguire un'operazione di join, ovvero un'operazione SQL che specifica la relazione tra due origini dati e se i dati di un'origine possono essere inclusi nel caso in cui non esistano dati corrispondenti nell'altra origine.

Per combinare le informazioni di due origini dati, si esegue un'operazione di join sul campo comune alle due origini dati. Quando i valori memorizzati nel campo corrispondono, nei risultati i dati dei record vengono combinati.

Oltre che per combinare dati, è possibile utilizzare un'operazione di join per specificare se un record di una tabella deve essere incluso nel caso in cui nella tabella correlata non esista un record corrispondente.

Ad esempio, si supponga che si desidera utilizzare dati di due tabelle in una query: tblCustomer e tblOrder. Le due tabelle entrambi avere un campo CustomerID, che identifica un cliente. Ogni record nella tabella tblCustomer potrebbe essere uno o più record corrispondenti nella tabella tblOrder e i valori corrispondenti possono essere determinati dai valori nel campo IDCliente.

Se si desidera unire in join le tabelle in modo che la query combini i record di entrambe, escludendo i record di una tabella se non esiste un record corrispondente nell'altra, la clausola FROM sarà simile alla seguente (sono state aggiunte interruzioni di riga per una leggibilità migliore):

FROM [tblCustomer] INNER JOIN [tblOrder]
ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID]

In Microsoft Office Access le operazioni di join vengono eseguite all'interno della clausola FROM di un'istruzione SELECT. Esistono due tipi di join: inner join e outer join. Nelle sezioni seguenti vengono illustrati i due tipi di join.

Inner join

Gli inner join rappresentano il tipo di join più comune. Quando si esegue una query con un inner join, gli unici record inclusi nei risultati della query sono quelli per i quali esiste un valore comune in entrambe le tabelle unite in join.

La sintassi di un inner join è la seguente (sono state aggiunte interruzioni di riga per una leggibilità migliore):

FROM table1 INNER JOIN table2
ON table1.field1 compopr table2.field2

Nella tabella seguente sono descritte le diverse parti di un'operazione INNER JOIN.

Parte

Descrizione

Tabella1, Tabella2

Nomi delle tabelle di cui vengono combinati i record.

Campo1, Campo2

Nomi dei campi uniti in join. Se non includono dati numerici, i campi devono includere lo stesso tipo di dati e contenere lo stesso genere di dati. Non è tuttavia necessario che abbiano lo stesso nome.

operatorediconfronto

Operatore di confronto relazionale: "=," "<," ">," "<=," ">=," o "<>."

Outer join

Gli outer join sono simili agli inner join poiché indicano alla query come combinare le informazioni di due origini. Sono tuttavia diversi perché specificano inoltre se includere i dati nel caso in cui non esista un valore comune. Gli outer join sono direzionali, ovvero è possibile indicare se includere tutti i record della prima origine dati specificata nel join (join sinistro) o se includere tutti i record della seconda origine dati del join (join destro).

La sintassi di un outer join è la seguente:

DAL parametro table1 [sinistra | JOIN destro] Tabella2
in table1.field1compopr table2.field2

Nella tabella seguente sono descritte le diverse parti delle operazioni LEFT JOIN e RIGHT JOIN.

Parte

Descrizione

Tabella1, Tabella2

Nomi delle tabelle di cui vengono combinati i record.

Campo1, Campo2

Nomi dei campi che vengono collegati. I campi devono avere lo stesso tipo di dati e includere lo stesso genere di dati, tuttavia non è necessario che utilizzino lo stesso nome.

compopr

Operatore di confronto relazionale: "=," "<," ">," "<=," ">=," o "<>."

Per altre informazioni sui join, vedere l'articolo Collegare tabelle e query.

Torna all'inizio

Ulteriori informazioni sulla clausola WHERE

Quando si desidera utilizzare dati per limitare il numero di record restituiti in una query, utilizzare query criteri nella clausola WHERE di un'istruzione SELECT. Criteri di query sono simili a formule, si tratta di una stringa che può essere costituito da campo riferimenti, operatori e costanti. Criteri di query sono un tipo di espressione.

Nella tabella seguente vengono illustrati alcuni criteri di esempio e ne viene descritto l'utilizzo.

Criteri

Descrizione

>25 AND <50

Questo criterio si applica ai campi di tipo Numerico, ad esempio Prezzo o Scorte. Il criterio include solo i record nei quali il campo contiene un valore maggiore di 25 e minore di 50.

DateDiff ("aaaa", [Data di nascita], Date()) > 30

Questo criterio si applica ai campi di tipo Data/ora, ad esempio Data di nascita (BirthDate), e include nei risultati della query solo i record in cui il numero di anni compreso tra la data di nascita di una persona e la data corrente è maggiore di 30.

Is Null

È possibile applicare questo criterio a qualsiasi tipo di campo per visualizzare i record in cui il valore del campo è Null.

Come illustrato nella tabella precedente, i criteri possono essere alquanto diversi tra loro a seconda del tipo di dati del campo a cui vengono applicati e dei requisiti specifici dell'utente. Alcuni criteri sono semplici e utilizzano costanti e operatori di base. Altri sono complessi, utilizzano funzioni e operatori speciali e includono riferimenti a campi.

Importante : Se si utilizza un campo con una funzione di aggregazione, non è possibile specificare i criteri per il campo in una clausola WHERE. Se, tuttavia, utilizzare una clausola HAVING per specificare i criteri per i campi aggregati. Per ulteriori informazioni, vedere la sezione uso dei dati riepilogati: GROUP BY e HAVING.

Sintassi della clausola WHERE

La sintassi di base di una clausola WHERE è la seguente:

WHERE field = criterion

Si supponga ad esempio di desiderare il numero di telefono di un cliente, ma di ricordare solo che il cognome del cliente è Bagel. Anziché esaminare tutti i numeri di telefono presenti nel database, è possibile utilizzare una clausola WHERE per limitare i risultati e semplificare la ricerca del numero di telefono desiderato. Se i cognomi sono memorizzati in un campo denominato Cognome (LastName), la clausola WHERE sarà la seguente:

WHERE [LastName]='Bagel'

Nota : Non è necessario basare i criteri nella clausola WHERE equivalenza dei valori. È possibile usare altri operatori di confronto, ad esempio maggiore (>) o minore di (<). Ad esempio, in [Price] > 100.

Utilizzare la clausola WHERE per combinare origini dati diverse

In alcuni casi è necessario combinare origini dati diverse in base ai campi contenenti dati corrispondenti, ma tipo di dati diverso. Può essere necessario ad esempio confrontare un campo di tipo Numerico di una tabella con un campo contenente dati di tipo Testo di un'altra tabella.

Non è possibile creare un join tra campi con tipo di dati diverso. Per combinare i dati di due origini dati in base ai valori di campi con tipo di dati diverso, è possibile creare una clausola WHERE in cui un campo viene utilizzato come criterio per l'altro campo tramite la parola chiave LIKE.

Si supponga ad esempio di dover utilizzare i dati delle tabelle table1 e table2, ma che solo i dati del campo field1 (campo di tipo Testo nella tabella table1) corrispondano ai dati del campo field2 (campo di tipo Numerico nella tabella table2). La clausola WHERE sarà simile alla seguente:

WHERE field1 LIKE field2

Per altre informazioni su come creare i criteri da usare in una clausola WHERE, vedere l'articolo Esempi di criteri di query.

Torna all'inizio

Nota : Dichiarazione di non responsabilità per la traduzione automatica: Il presente articolo è stato tradotto tramite un software di traduzione automatica e non da una persona. Microsoft offre le traduzioni automatiche per consentire a coloro che non conoscono la lingua inglese di leggere gli articoli sui prodotti, sui servizi e sulle tecnologie Microsoft. Dal momento che l'articolo è stato tradotto automaticamente, potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli.

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa al programma Office Insider

Queste informazioni sono risultate utili?

Grazie per i tuoi commenti e suggerimenti

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×