Regole per l'immissione di valori di ricerca
In questo argomento sono illustrate le convenzioni da utilizzare quando si immettono i seguenti tipi di valori letterali in una condizione di ricerca:
Valori di testo
Valori numerici
Date
Valori logici
Nota
Le informazioni contenute in questo argomento derivano dalle regole relative a SQL-92 standard. In ogni database è tuttavia possibile implementare SQL in modo personalizzato. Di conseguenza, le indicazioni fornite potrebbero non essere valide per tutti i database. In caso di dubbi su come immettere i valori di ricerca per un particolare database, vedere la documentazione del database in uso.
Ricerche su valori di testo
Quando si immettono valori di tipo testo nelle condizioni di ricerca, è necessario tenere presente le seguenti indicazioni:
Virgolette Delimitare i valori di tipo testo tra virgolette semplici, come nel seguente esempio per un cognome:
'Smith'
Se si immette una condizione di ricerca nel riquadro Criteri, è sufficiente specificare il valore di testo. Le virgolette verranno inserite automaticamente.
Nota
In alcuni database le parole tra virgolette singole vengono interpretate come valori letterali, mentre le parole tra virgolette doppie vengono interpretate come oggetti di database quali riferimenti a colonne o tabelle. Di conseguenza, anche se in Progettazione query e Progettazione visualizzazioni è possibile accettare parole tra virgolette doppie, l'interpretazione potrebbe essere diversa da quella prevista.
Incorporamento di apostrofi Se i dati da cercare contengono una virgoletta singola (un apostrofo), è possibile immettere due virgolette singole per indicare che la virgoletta singola deve essere interpretata come un valore letterale e non come delimitatore. La seguente condizione ricerca ad esempio il valore "Swann's Way":
='Swann''s Way'
Limiti di lunghezza Quando si immettono stringhe lunghe non si deve superare la lunghezza massima delle istruzioni SQL per il database in uso.
Maiuscole e minuscole È necessario seguire le regole per il database che si sta utilizzando. Il database in uso determina se le ricerche di elementi di testo distinguono fra maiuscole e minuscole. Alcuni database interpretano, ad esempio, l'operatore "=" come corrispondenza di maiuscole e minuscole, mentre altri consentono la ricerca di qualsiasi combinazione di caratteri maiuscoli e minuscoli.
Se non si è certi dell'utilizzo delle maiuscole e delle minuscole nel database in uso, è possibile utilizzare le funzioni UPPER o LOWER nelle condizioni di ricerca per convertire i dati della ricerca, come mostrato nel seguente esempio:
WHERE UPPER(lname) = 'SMITH'
Per ulteriori informazioni sulle funzioni di conversione in lettere maiuscole e minuscole, vedere Funzioni per le espressioni.
Ricerche su valori numerici
Quando si immettono valori numerici nelle condizioni di ricerca, è necessario tenere presente le seguenti indicazioni:
Virgolette Non racchiudere i numeri tra virgolette.
**Caratteri non numerici ** Non inserire caratteri non numerici, tranne il separatore decimale (come definito nella finestra di dialogo Impostazioni internazionali del Pannello di controllo di Windows) e il segno negativo (‑). Non inserire simboli di raggruppamento di cifre (quale il separatore delle migliaia) o simboli di valuta.
Separatore decimale Se si stanno immettendo numeri interi, è possibile inserire un separatore decimale, sia che il valore che si sta cercando sia un Integer sia che si tratti di un numero reale.
Notazione scientifica È possibile immettere numeri molto grandi o molto piccoli utilizzando la notazione scientifica, come nel seguente esempio:
> 1.23456e-9
Ricerche su date
Il formato da utilizzare per immettere le date dipende dal database in uso e dal riquadro di Progettazione query e Progettazione viste in cui si sta immettendo la data.
Nota
Se non si conosce il formato utilizzato dall'origine dati, digitare una data nella colonna Filtro del riquadro Criteri in un formato conosciuto. La maggior parte di queste voci verrà convertita automaticamente nel formato appropriato.
È possibile utilizzare i seguenti formati di data:
Specifico delle impostazioni locali Il formato specificato per le date nella finestra di dialogo Proprietà impostazioni locali di Windows.
Specifico del database Qualsiasi formato supportato dal database.
Data standard ANSI Un formato che utilizza parentesi graffe, l'indicatore "d" per identificare la data e una stringa della data come nel seguente esempio:
{ d '1990-12-31' }
DateTime standard ANSI Analogo alla data standard ANSI, ma utilizza "ts" al posto di 'd' e aggiunge le ore, i minuti e i secondi alla data (utilizzando una notazione di 24 ore), come nel seguente esempio per 31 dicembre 1990:
{ ts '1990-12-31 00:00:00' }
In generale, il formato di data standard ANSI viene utilizzato con i database che rappresentano le date con un tipo di date reali. Il formato datetime viene invece utilizzato con database che supportano un tipo di dati datetime.
Nella tabella riportata di seguito sono elencati i formati di data utilizzabili nei diversi riquadri di Progettazione query e Progettazione visualizzazioni.
Riquadro |
Formato data |
---|---|
Criteri |
Specifico delle impostazioni locali Specifico del database Standard ANSI Le date immesse nel riquadro Criteri vengono convertite in un formato compatibile con il database nel riquadro SQL. |
SQL |
Specifico del database Standard ANSI |
Risultati |
Specifico delle impostazioni locali |
Ricerche su valori logici
Il formato dei dati logici varia da database a database. Molto spesso, un valore False viene memorizzato come zero (0). Un valore True viene generalmente archiviato come 1 e talvolta come -1. Quando si immettono valori logici nelle condizioni di ricerca, è necessario tenere presente le seguenti linee guida:
Per cercare un valore False, utilizzare uno zero, come nel seguente esempio:
SELECT * FROM authors WHERE contract = 0
Se non si è certi del formato da utilizzare quando si cerca un valore True, provare a utilizzare 1, come nel seguente esempio:
SELECT * FROM authors WHERE contract = 1
In alternativa, è possibile ampliare l'ambito della ricerca cercando tutti i valori diversi da zero, come nel seguente esempio:
SELECT * FROM authors WHERE contract <> 0