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
- Qual è il rischio principale nell'utilizzo di interrogazioni SQL complesse?
- Come possono essere semplificate le interrogazioni annidate in SQL?
- Qual è l'ordine corretto delle clausole nel comando Select?
Il rischio principale è quello di ottenere istruzioni SQL troppo complesse e di difficile interpretazione, come evidenziato nel testo.
È possibile semplificare le interrogazioni annidate utilizzando tabelle temporanee per raccogliere risultati parziali, grazie alla clausola Into, evitando così scritture eccessivamente complesse.
L'ordine corretto delle clausole nel comando Select è: SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY, come specificato nel testo.