Concetti Chiave

  • I predicati come Any, All, e Exists sono utilizzati per confrontare i valori delle sotto interrogazioni con quelli delle interrogazioni superiori.
  • Any verifica se almeno un valore nell'insieme restituito soddisfa una condizione, mentre All controlla se tutti i valori la soddisfano.
  • Exists determina se una sotto interrogazione restituisce almeno un valore, offrendo un metodo per controllare la presenza di dati.
  • L'operatore Not può essere applicato ai predicati per negare le condizioni di appartenenza e verifica.
  • Un esempio pratico mostra come visualizzare gli studenti di classi con più di 30 allievi utilizzando una sotto interrogazione per filtrare i dati.

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

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

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

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

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 pratico di interrogazione

Esempio

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

Select Cognome, Nome

From Studenti

WHhere CodiceClassesse 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 da interrogazione

  1. Quali predicati possono essere utilizzati per confrontare i valori di una sotto interrogazione?
  2. I predicati utilizzabili includono "In" per verificare l'appartenenza a un insieme, "Any" per controllare condizioni con almeno un valore dell'insieme, "All" per condizioni con tutti i valori, e "Exists" per verificare la presenza di almeno un valore nella sotto interrogazione.

  3. Come si esegue una sotto interrogazione per ottenere classi con più di 30 studenti?
  4. Si esegue una sotto interrogazione che restituisce i codici delle classi con più di 30 studenti utilizzando "Select CodiceClasse From Studenti Group BY CodiceClasse Where Count(*) > 30".

  5. Qual è il processo per visualizzare i nominativi degli studenti in classi con più di 30 allievi?
  6. Si esegue prima la sotto interrogazione per ottenere i codici delle classi, poi si utilizza l'interrogazione principale con il predicato "IN" per selezionare gli studenti delle classi ottenute, infine si visualizzano solo i nominativi degli studenti.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community