Guadagna ON-Line

 » Home » DataBase Relazionali e linguaggio SQL

Comandi SQL Vari: EXISTS ed ALL

 

EXISTS usa una sottoquery come condizione: la condizione è Vera se la sottoquery ritorna almeno una riga, ed è Falsa se la sottoquery non ritorna nessuna riga.

Questa è una funzionalità non intuitiva con quest’uso specifico. Comunque, se si vuole stampare un riassuntivo clienti solo se il negozio ha venduto Sedie, si può scrivere:

SELECT NomeAcquirente, CognomeAcquirente
FROM ANTIQUARI
WHERE EXISTS

    (SELECT *
        FROM ANTICHITA
        WHERE Oggetto = 'Sedia');

Se nella colonna della tabella ANTICHITA c’è almeno una riga contenente l’articolo sedia, la sottoquery ritorna una o più righe, rendendo Vera la condizione EXISTS; di conseguenza la query stampa gli Antiquari.
Se non ci sono righe con l’oggetto Sedia, la query esterna non stamperà alcuna riga.

ALL è un’altra funzionalità inusuale, in quanto la query che contengono l’istruzione ALL possono essere eseguite in altri modi, a volte anche più semplici; diamo un’occhiata alla query di esempio:

SELECT IDAcquirente, Oggetto
FROM ANTICHITA
WHERE Prezzo >= ALL

    (SELECT Prezzo
        FROM ANTICHITA);

Questa query ritorna l’oggetto con il prezzo più alto (o più di un oggetto se hanno un prezzo uguale e massimo), e l’Acquirente.
La sottoquery ritorna una lista di tutti i prezzi nella tabella ANTICHITA, mentre la query esterna passa tutte le righe della tabella ANTICHITA, e se il prezzo è maggiore o uguale di qualunque altro oggetto (ALL = tutti), viene stampato, risultando così l’oggetto con il prezzo più alto. La ragione per cui viene usato il segno di “maggiore o uguale” è che il prezzo dell’oggetto più costoso sarà uguale al prezzo più alto della tabella.

 

di Pietro Suffritti







Indice
 Introduzione
Cos'e' un database?
Database Relazionali
Cos'e' SQL
Commit e Rollback
Gestione multiutenza
 Linguaggio SQL
Il comando SELECT
Selez. Condizionata
Operatori Relazionali
Condizioni complesse
IN, BETWEEN e NOT
LIKE e carattere %
I Join
Le Chiavi
Creare un Join
DISTINCT e Duplicati
Alias, In e Subquery
 Comandi SQL Vari
Funzioni di Aggregazione
Viste
Creare Nuove Tabelle
Modifica struttura tab.
Inserire dati in tabella
Eliminare dati da tabella
Modifica dei dati
Indici
GROUP BY ed HAVING
Altre Subquery
EXISTS ed ALL
UNION ed Outer Joins
 Sommario Sintassi
 Link utili SQL

     

by 1999-2012 , ADMEDIA multimedia software development, Tutti i diritti riservati.
Per utilizzare il materiale pubblicato su HarrrDito.it è necessario richiedere l'autorizzazione.
Tutti i marchi citati sono copyright dei rispettivi proprietari. - Note Legali -




cod: 2-1.21.05 - 38.107.179.221