picoSQL - Manuale di riferimento


6) Condizioni di ricerca


Le condizioni di ricerca sono formate da uno o più predicati, combinati tra loro tramite gli operatori logici AND, OR e NOT. Esse sono usate per scegliere un sottoinsieme di righe da una tabella o da un insieme di più tabelle.

I predicati di una condizione di ricerca vengono valutati ogni volta che viene letta una riga dal database e se il risultato della valutazione risulta soddisfatto allora la riga viene restituita come valida, altrimenti viene ignorata.


(*) SQL standard usa una logica a tre stati, VERO, FALSO e SCONOSCIUTO dove quest'ultimo valore viene assegnato ogni volta si esegue un confronto dove compare un valore NULL. Le tabelle di verità di questo tipo di logica per gli operatori logici menzionati sono le seguenti:


AND

VERO

FALSO

SCON.

VERO

VERO

FALSO

SCON.

FALSO

FALSO

FALSO

FALSO

SCON.

SCON.

FALSO

SCON.


OR

VERO

FALSO

SCON.

VERO

VERO

VERO

VERO

FALSO

VERO

FALSO

SCON.

SCON.

VERO

SCON.

SCON.


NOT


VERO

FALSO

FALSO

VERO

SCON.

SCON.


picoSQL usa una più semplice logica booleana a due valori, VERO e FALSO. Questo comporta un'unica differenza di comportamento tra lo standard SQL e picoSQL e cioè che il primo non ritiene soddisfatto un predicato che controlla se due valori NULL sono uguali mentre il secondo si.

PicoSQL permette in particolare di fare join su campi a NULL, aggirando in tal modo la necessità delle outer-join, che comunque sono implementate.


Due operandi confrontati in un predicato, direttamente o indirettamente, debbono essere di tipi comparabili.


Indice Precedente Successivo