Concetti Chiave

  • Il comando Select consente di scrivere interrogazioni sintetiche, ma può portare a SQL complesse e difficili da interpretare.
  • È possibile utilizzare tabelle temporanee con la clausola Into per raccogliere risultati parziali e semplificare le interrogazioni.
  • Le tabelle temporanee possono essere eliminate con il comando Drop Table, migliorando la gestione delle risorse.
  • Le clausole del comando Select devono seguire un ordine specifico: SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY.
  • Un esempio pratico mostra come calcolare la media dei voti per studenti di Informatica, verificando la loro esistenza nella specializzazione.

Sintesi e complessità delle interrogazioni

Il comando Select permette di essere molto sintetici nella scrittura delle interrogazioni,con interrogazioni annidate anche su più di due livelli,tuttavia il rischi che si corre e quello di ottenere istruzioni SQL troppo complesse e di difficile interpretazione. A questo proposito,ricordo che è possibile salvare in tabelle temporanee i risultati parziali di un'elaborazione grazie alla clausola Into, che va specificata dopo aver elencato glia attributi della Select. In questo modo,risultati di elaborazioni parziali possono essere raccolti in tabelle temporanee che potranno poi essere utilizzate come tabelle di ingresso per elaborazioni successive,limitandocisi la scrittura di interrogazioni annidate molto complesse. Le tabelle temporanee possono poi esse eliminate con il comando Droptable.

Ordine delle clausole nel comando Select

Per finire ricordiamo che le clausole che costituiscono il comando Select che se utilizzate devono comparire nel seguente ordine.

SELECT attributi per il taglio verticale

FROM tabelle coinvolte

WHERE condizioni di giunzione e di taglio orizzontale

GROUP BY attributi per il raggruppamento

HAVING condizioni di taglio orizzontale sui gruppi

ORDER BY attributi per l'ordinamento

Visualizzare la media dei voti degli studenti di Informatica solo se esistono studenti iscritti a quella specializzazione:

SELECT AVG (Voto) AS MediaVotiInformatica

FROM Stundenti,Valutazioni,Classi.

WHERE Studenti.Matricola = Valutazioni.Matricola

AND Studenti.CodiceClasse = Classi.CodiceClasse AND Specializzazione = “Informatica”

AND EXISTS

(SELECT *

FROM Studenti, Classi

WHERE Studenti.CodiceClasse = Classi.CodiceClasse

AND Specializzazione = “Informatica”);

Domande da interrogazione

  1. Qual è il rischio principale nell'utilizzo di interrogazioni SQL complesse?
  2. Il rischio principale è quello di ottenere istruzioni SQL troppo complesse e di difficile interpretazione, come evidenziato nel testo.

  3. Come possono essere semplificate le interrogazioni annidate in SQL?
  4. È possibile semplificare le interrogazioni annidate utilizzando tabelle temporanee per raccogliere risultati parziali, grazie alla clausola Into, evitando così scritture eccessivamente complesse.

  5. Qual è l'ordine corretto delle clausole nel comando Select?
  6. L'ordine corretto delle clausole nel comando Select è: SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY, come specificato nel testo.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community