Dreke90
Genius
1 min. di lettura
Vota 3 / 5

Concetti Chiave

  • I predicati IN, ANY, ALL ed EXISTS sono utilizzati per confrontare valori tra sotto interrogazioni e interrogazioni superiori.
  • Il predicato IN verifica l'appartenenza di un valore all'insieme restituito dalla sotto interrogazione.
  • ANY controlla se un valore soddisfa una condizione con almeno uno dei valori dell'insieme restituito.
  • ALL verifica se un valore soddisfa una condizione con tutti i valori dell'insieme restituito.
  • Exists determina se la sotto interrogazione restituisce almeno un valore, e i predicati possono essere negati con NOT.
I predicati delle interogazioni nidificate.

Per poter metter a confronto i valori restituiti dalla sotto interrogazione con quelli dell'interrogazione a livello superiore,faremo uso di alcuni predicati.

In
In per controllare se un valore appartiene all'insieme di valori restituito dalla sotto interrogazione.

Any
Any per controllare se un valore verifica una condizione con almeno uno dei valori dell'insieme restituito dalla sotto interrogazione.

All
All per controllare se un valore verifica una condizione con tutti i valori dell'insieme restituito dalla sotto interrogazione.

Exists
Exists per controllare se la sotto interrogazione restituisce almeno un valore.

A ognuno dei precedenti predicati può naturalmente essere applicato l'operatore Not,per negare le condizioni appena viste.

Esempio
Visualizzare i nominativi degli studenti che frequentano classi con più di 30 allievi.

Select Cognome, Nome
From Studenti
WHhere CodiceClasse IN
(
Select CodiceClasse
From Studenti
Gruop BY CodiceClasse
Where Count (*)>30);
Simuliamo passo per passo l'esecuzione dell'interrogazione partendo anche in questo caso dalla sotto interrogazione:
1)E' eseguita la sotto interrogazione che restituisce l'insieme formato dai codici delle classi che hanno più di 30 studenti.

2)A questo punto è eseguita l'interrogazione a livello superiore,che effettua un taglio orizzontale della tabella Studenti selezionando le righe che soddisfano la condizione realizzata con il predicato IN,vengono perciò selezionate solo le righe corrispondenti a valori dell'attributo CodiceClasse appartenetti all'insieme ricavato dalla sotto interrogazione.

3)Le righe della tabella ricavata dal passo precedente vengono tagliate verticalmente,in modo da visualizzare l'elenco dei nominativi degli studenti che frequentano classi con più di 30 allievi.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community