Modificare le istruzioni SQL per affinare i risultati delle query

Modificare le istruzioni SQL per affinare i risultati delle query

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

Se le tue query non danno i risultati sperati, l'aggiunta alcune istruzioni SQL di base può aiutare a mettere in evidenza i risultati. Esaminiamo alcuni tipi di istruzioni SQL e le clausole o le parti che potresti modificare per ottenere i risultati desiderati.

Nota : Questo articolo non è applicabile alle app web di Access, il tipo di database che è possibile progettare con Access e pubblicare online. Per altre informazioni, vedere Creare un'app Access.

In questo articolo

Creare un'istruzione Select

Personalizzazione della clausola SELECT

Personalizzazione della clausola FROM

Personalizzazione della clausola WHERE

Personalizzazione con l'operatore UNION

Creare un'istruzione Select

Un'istruzione select SQL contiene da due a tre clausole. La clausola SELECT indica al database dove cercare i dati e gli chiede di restituire un risultato specifico.

Nota : Le istruzioni SELECT terminano sempre con un punto e virgola alla fine dell'ultima clausola o in una riga a sé stante alla fine dell'istruzione SQL stessa.

L'istruzione select seguente chiede ad Access di ottenere informazioni dalle colonne E-mail Address e Company della tabella Contacts, in particolare dove trova "Seattle" nella colonna City.

Scheda di oggetto SQL con istruzione SELECT

La query precedente contiene le tre clausole SELECT, FROM e WHERE.

1. La clausola SELECT elenca le colonne contenenti i dati che vuoi usare e contiene un operatore (SELECT) seguito da due identificatori (E-mail Address e Company). Se un identificatore contiene spazi o caratteri speciali (come "E-mail Address"), racchiudilo tra parentesi quadre.

2. La clausola FROM identifica la tabella di origine. In questo esempio, contiene un operatore (FROM) seguito da un identificatore (Contacts).

3. La clausola WHERE è una clausola facoltativa. L'esempio contiene un operatore (WHERE) seguito da un'espressione (City="Seattle").

Per ulteriori informazioni, vedere le query di selezione creare una query di selezione semplice.

Ecco un elenco di clausole SQL comuni:

Clausola SQL

Funzione

Obbligatorio ?

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

Ogni clausola SQL è costituita da termini. Ecco un elenco di alcuni tipi di termini SQL comuni.

Termine SQL

Definizione

Esempio

identificatore

Nome usato per identificare un oggetto di database, ad esempio il nome di una colonna.

[E-mail Address] e Company

Operatore

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

AS

costante

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

42

espressione

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

>= Prodotti.[Prezzo unitario]

Torna all'inizio

Personalizzazione della clausola SELECT

Personalizza

Esempio

Per visualizzare solo i valori distinti.

Usa la parola chiave DISTINCT nella clausola SELECT.

Se, ad esempio, i tuoi clienti si trovano in più filiali diverse e alcuni hanno lo stesso numero di telefono, ma vuoi visualizzare un solo numero di telefono per volta, la clausola SELECT sarà come questa:

SELECT DISTINCT [txtCustomerPhone] 

Per modificare il modo in cui un identificatore appare nella visualizzazione Foglio dati e migliorare la leggibilità.

Usa l'operatore AS (una parola chiave che rappresenta o modifica un'azione) con un alias di campo nella clausola SELECT. Un alias di campo è un nome che assegni a un campo per agevolare la lettura dei risultati.

SELECT [txtCustPhone] AS [Customer Phone]

Personalizzazione della clausola FROM

Personalizza

Esempio

Puoi usare un alias di tabella o un nome diverso assegnato a una tabella in un'istruzione select. Un alias di tabella è utile se il nome della tabella è lungo, soprattutto quando più campi di diverse tabelle hanno lo stesso nome.

Per selezionare i dati di due campi, entrambi denominati ID, uno dei quali appartiene alla tabella tblCustomer e l'altro alla tabella tblOrder:

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

Usa l'operatore AS per definire gli alias di tabella nella clausola FROM:

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

Puoi quindi usare gli alias di tabella nella clausola SELECT, come segue:

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

Usa le linee di join per combinare coppie di record di due origini dati in un unico risultato o per specificare se includere i record di una tabella se non ci sono record corrispondenti nella tabella correlata.

Unisci in join le tabelle in modo che la query combini gli elementi di entrambe ed escluda gli elementi quando non esiste un record corrispondente nell'altra

Eccome come apparirà la clausola FROM:

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

Informazioni sull'utilizzo di linee di join

Ci sono due tipi di linee di join, inner e outer join. Gli inner join sono più comuni nelle query. Quando esegui una query con un inner join, il risultato mostra solo gli elementi per i quali esiste un valore comune in entrambe le tabelle unite in join.

Gli outer join specificano se includere i dati nel caso in cui non esista un valore comune. Gli outer join sono direzionali, ovvero puoi indicare se includere tutti i record della prima tabella specificata nel join (left join) o se includere tutti i record della seconda tabella del join (right join). La sintassi SQL di un outer join è la seguente:

FROM table1 [ LEFT | RIGHT ] JOIN table2
ON table1.field1 = table2.field2

Vedere ulteriori informazioni tramite join in una query.

Torna all'inizio

Personalizzazione della clausola WHERE

La clausola WHERE include criteri che consente di limitare il numero di elementi restituiti in una query. Vedere esempi di criteri di query e funzionamento.

Per personalizzare la clausola WHERE di base, puoi, ad esempio, limitare i risultati di una query. Supponi di voler trovare il numero di telefono di un cliente, ma di ricordare solo che il cognome del cliente è Bagel. In questo esempio, poiché i cognomi sono archiviati in un campo LastName, la sintassi SQL sarà:

WHERE [LastName]='Bagel'

Utilizzare la clausola WHERE anche per combinare le origini dati per le colonne che hanno corrispondenti dati, ma diversi tipi di dati. Questo risulta utile poiché non è possibile creare un join tra i campi contenenti diversi tipi di dati. Utilizzo di un campo come criterio per il campo, con la parola chiave LIKE . Ad esempio, se si desidera utilizzare i dati di una tabella di risorse e alla tabella Employees, solo quando il tipo di risorsa della risorsa tipo campo della tabella risorse contiene il numero 3 nel campo quantità della tabella Employees, ecco come la clausola WHERE risulterebbe:

WHERE field1 LIKE field2

Importante :  Non puoi specificare i criteri per un campo usato con una funzione di aggregazione in una clausola WHERE. Per specificare criteri per i campi di aggregazione, usa invece la clausola HAVING.

Torna all'inizio

Personalizzazione con l'operatore UNION

Usa l'operatore UNION quando vuoi avere una visualizzazione combinata dei risultati da più query di selezione simili, ad esempio se il tuo database contiene una tabella Products e una tabella Services e in entrambe le tabelle sono presenti tre campi che contengono il prezzo, la garanzia o l'assicurazione e l'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. Usando una query di unione puoi combinare i tre campi delle due tabelle in questo modo:

SELECT name, price, warranty, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee, exclusive_offer
FROM Services;

Quando esegui la query, i dati da ogni set di campi corrispondenti vengono combinati in un solo campo di output. Per includere nei risultati eventuali righe duplicate, usa l'operatore ALL.

Nota :  L'istruzione Select deve avere lo stesso numero di campi di output, nello stesso ordine e con tipi di dati uguali o compatibili. In una query di unione, i tipi di dati Number e Text sono compatibili.

Per ulteriori informazioni sulle query di unione, vedere uso di una query di unione per visualizzare un risultato unificato di più 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.

×