Linguaggio SQL: Caratteristiche e struttura delle query

Linguaggio SQL: Caratteristiche e struttura delle query

La query è il costrutto più importante e più usato del linguaggio SQL: questa è una funzione che permettere di interrogare il database in modo da ottenere delle informazioni ivi contenute filtrandole, a seconda delle esigenze, con l’introduzione di speciali costrutti e parole chiave. Le query sono infatti le stringhe con il più ricco insieme di parole chiave utilizzabili: questo porta alla possibilità di un più alto grado di specificità nella formulazione delle richieste, a dettagli ben più specifici ma come controparte ad una maggiore complessità sintattica. La lunghezza delle query infatti può arrivare anche a più di 70 righe di codice SQL.

Linguaggio SQL - Caratteristiche e struttura delle query

La sintassi di una query è ben definita a priori, con regole precise che ne identificano ogni singola componente; le due parole chiave obbligatorie per la formulazione di una query sono:

  1. SELECT: indica i campi che si intendono ricercare nelle tabelle specificate e ne evidenziano il risultato;
  2. FROM: indica le tabelle in cui l’utente intende ricercare i valori dei campi richiesti. Questo semplice costrutto, sebbene poco articolato, è già in grado di produrre un risultato. Nel linguaggio SQL sono state implementate altre parole chiave per le query che, seppur facoltative, ne aumentano la potenza espressiva, e per questo sono frequentemente utilizzate.
  3. WHERE: questa parola chiave indica delle condizioni che devono essere verificate nell’interrogazione al database: infatti verranno visualizzate nel risultato solo ed esclusivamente i record che abbiano verificato le condizioni qui espresse. L’omissione di questa clausola indica che la query selezionerà tutti i record presenti nel risultato del prodotto cartesiano delle tabelle nella clausola FROM;
  4. GROUP BY: i record risultanti dalla query verranno suddivisi in gruppi a seconda del valore del campo qui inserito, chiamato campo di raggruppamento;
  5. HAVING: usata solo in presenza della clausola GROUP BY, viene utilizzata per specificare delle condizioni su ciascun gruppo, corrispondente ad ogni distinto valore del campo di raggruppamento: solo i gruppi per i quali la condizione è soddisfatta entrano a far parte del risultato della query;
  6. ORDER BY: questa parola chiave identifica quali campi vengono utilizzati per ordinare i risultati ed in che senso vengono ordinati (crescente o decrescente). Senza questa specifica, il risultato della query è semplicemente non definito.

Il risultato di una query è quindi una tabella costituita da record:

  • che appartengono alle tabelle elencate nella clausola FROM;
  • che soddisfano le condizioni espresse della clausola WHERE (ove presente);
  • che sono proiettate sulla lista di attributi specificati nella clausola SELECT;
  • aggruppati secondo il campo espresso in GROUP BY (ove presente);
  • rispettanti la condizione di raggruppamento inclusa in HAVING (ove presente);
  • ordinati secondo le specifiche di ORDER BY (ove presente).

Va posta particolare attenzione al fatto che alcuni campi possono presentare un valore nullo: in tal caso può significare una valore non applicabile, un valore applicabile ma non conosciuto oppure una di queste due condizioni ma non si sa quale. Lo standard SQL prevede una logica a tre valori per la soluzione di operazioni tra valori nulli: vero, falso e sconosciuto.

In generale, le clausole presenti in maggior parte nelle query sono SELECT, FROM e WHERE; l’omissione di quest’ultima non crea problemi nella correttezza della query, ma porta il sistema a fornire un risultato corposo, privo di ogni logica e dispendioso in termini di tempo di calcolo.
Ognuna delle clausole sopra elencate e i loro successivi attributi, formano una parte importante nella formulazione di una query. Non solo, ognuna di esse al suo interno è dotata di altre parole chiave che apportano altre condizioni ed operazioni interne alle specifiche e concorrenti nella formazione del risultato.

Precedente Database: Caratteristiche del linguaggio SQL (Structured Query Language) Successivo Linguaggio SQL: Le query annidate e complesse

Lascia un commento

*