Torna all'elenco degli articoli Articoli
Tempo di lettura: 8 minuti

Termini SQL che i principianti dovrebbero conoscere - Parte 4

Ecco un'altra serie di termini SQL da conoscere. Nelle prime due parti abbiamo parlato di tabelle, database relazionali, query, alias, SQL JOINs, chiavi primarie e subquery. L'ultima volta siamo passati a termini più avanzati come INSERT INTO, GROUP BY e HAVING. Siete pronti ad approfondire la terminologia SQL?

Questa è la quarta puntata della nostra serie sui termini SQL di base per i principianti (e per tutti gli altri). Non preoccupatevi se vi siete persi gli articoli precedenti; potete trovare la Parte 1 (termini SQL essenziali), la Parte 2 e la Parte 3 nel nostro blog.

Non esitate a tornare agli articoli precedenti, anche se li avete già letti. Più si ripetono le informazioni, più le si memorizzano. Scopriamo quindi altri termini SQL che è necessario conoscere.

Ancora più termini SQL per principianti!

CASO

L'istruzione CASE esamina più condizioni e restituisce un valore quando la prima condizione è soddisfatta. Quando la condizione è vera, CASE restituisce il risultato e si ferma. Se si verifica una situazione in cui nessuna condizione è vera, l'istruzione restituisce il valore della clausola ELSE. Se non c'è una clausola ELSE e nessuna condizione è vera, restituisce NULL.

CASE può essere utilizzato nelle istruzioni SELECT con le clausole WHERE, ORDER BY e GROUP BY . Funziona anche con l'istruzione INSERT.

L'istruzione case in SQL può essere utilizzata in due modi: assegnando un risultato a un valore o calcolando un risultato da espressioni logiche. Per saperne di più, consultate il nostro articolo sull'uso di CASE con la funzione SUM().

Clausole CTE / WITH

CTE è l'abbreviazione di Common Table Expression (Espressione di tabella comune); è anche chiamata clausola WITH o clausola WITH nominata. Questo perché la parola chiave WITH inizia tutte le CTE.

Le CTE sono state introdotte per la prima volta in SQL:1999 e sono state adottate in SQL Server nel 2005. L'aspetto principale e migliore delle CTE è che semplificano e chiariscono le query complesse.

Quando si impara a usare le CTE, la maggior parte delle volte si preferiscono alle subquery. Perché? Perché le CTE rendono le query più leggibili, dividendole in blocchi più piccoli.

Con una CTE si definisce un insieme di risultati temporaneo. È temporaneo perché non è memorizzato in modo permanente da nessuna parte. Esiste ed è disponibile durante l'esecuzione delle istruzioni SELECT, INSERT, UPDATE, DELETE o MERGE; al termine dell'esecuzione dell'istruzione, la CTE viene eliminata.

Ecco alcune regole di base per le CTE:

  • Iniziare con l'operatore WITH.
  • Specificare il nome che si utilizzerà per la CTE. È possibile specificare anche i nomi delle colonne, separati da virgole.
  • Dopo il nome dell'espressione, inserire l'AS
  • Scrivere la query che produrrà l'insieme di risultati desiderato.

La sintassi di base della clausola WITH è la seguente:

WITH subquery1_name AS
(SELECT … subquery1...),
subquery2_name AS
(SELECT … subquery2...)
SELECT … main query ... 

Come si vede nell'esempio di sintassi, è possibile avere più CTE in una query. Queste CTE possono fare riferimento a se stesse o a un'altra CTE nella query.

Le CTE possono essere ricorsive o non ricorsive. Le CTE ricorsive sono più avanzate e richiedono l'aggiunta della parola chiave RECURSIVE. Consentono di attraversare strutture gerarchiche come le distinte dei materiali o gli organigrammi.

Esistono molti modi per utilizzare le CTE. È possibile consultarli nella nostra guida. È inoltre possibile vedere alcuni esempi pratici e capire perché vale la pena utilizzare la clausola WITH.

DISTINTO

Anche se siete principianti assoluti di SQL, probabilmente conoscete i dati duplicati. Questo accade perché le query SQL mostrano tutte le righe restituite nel set di risultati, anche se sono identiche. Fortunatamente, la parola chiave DISTINCT è qui per ripulire le cose, rimuovendo tutti i valori duplicati dai risultati.

DISTINCT funziona con SELECT e deve comparire prima delle colonne specificate. L'aspetto è il seguente:

SELECT DISTINCT
  column_1,
  column_2,
  …,
  column_n
FROM table_name

È possibile utilizzare DISTINCT con una o più colonne. Ma ricordate che SQL DISTINCT cercherà più facilmente una riga distinta che una colonna distinta.

Questa è solo una parte delle possibilità offerte da DISTINCT. Se volete imparare a gestire più colonne o funzioni aggregate o utilizzare DISTINCT con GROUP BY, leggete questo articolo. Potete anche ampliare le vostre conoscenze con il nostro percorso completo di apprendimento di SQL dalla A alla Z.

IDE

IDE sta per ambiente di sviluppo integrato. Sapete già che avete bisogno di un ambiente in cui scrivere le vostre query SQL. Certo, potete iniziare a usare la riga di comando, ma presto avrete bisogno di qualcosa di più.

Un IDE combina un editor di codice, un debugger, un po' di automazione e in pratica tutto ciò che serve per lavorare comodamente con grandi database. Forse avete sentito parlare di Oracle SQL Developer, My SQL Workbench o DBeaver? Sono tutti IDE.

Se non siete sicuri di quale sia l'IDE SQL più adatto a voi, consultate il nostro elenco dei migliori IDE del 2021.

INTERSETTO

Questo è uno degli operatori di set di SQL. Con INTERSECT è possibile combinare due SELECT due affermazioni. In cambio, si otterranno le righe comuni a entrambe le dichiarazioniSELECT. INTERSECT crea un'intersezione delle dichiarazioni selezionate.

Date un'occhiata alla sintassi di base di INTERSECT:

SELECT column_1 [, column_2, …, column_n]
FROM table_1 [, table_2, …, table_n]
[WHERE condition]
 
INTERSECT
 
SELECT column_1 [, column_2, …, column_n]
FROM table_1 [, table_2, …, table_n]
[WHERE condition]

Quando si vuole usare INTERSECT, ci sono alcune cose da ricordare. Quando si scrivono le query di SELECT, il numero e l'ordine delle colonne devono essere gli stessi. Inoltre, i tipi di dati delle colonne devono essere gli stessi o almeno compatibili.

Per saperne di più su INTERSECT, vedere qui.

UNIONE

Abbiamo già incontrato INTERSECT. Ora è il momento di un altro operatore di base per gli insiemi: UNION. Anche questo è utile quando si vogliono confrontare due o più tabelle. La differenza è che le istruzioni UNION restituiscono solo valori unici.

Per esempio, supponiamo di avere due tabelle contenenti i film preferiti da due persone. Con UNION, è possibile unire queste tabelle e ottenere un risultato che non include alcun duplicato. (Ma se si vuole sapere se a queste persone piacciono gli stessi film, è necessario usare INTERSECT).

Vista

Una vista è un'istruzione SQL denominata e memorizzata nel database. In altre parole, è come memorizzare una query predefinita; una vista memorizza la query stessa, non l'output della query. Per ulteriori informazioni sulle viste SQL, consultare questo articolo.

È possibile creare una vista da una o più tabelle. Può contenere righe selezionate da una tabella o da tutte. Il modo in cui la vista struttura i dati è molto chiaro e intuitivo. Si ottengono dati riassunti, che possono essere molto utili, ad esempio per generare report.

Per i principianti, le viste e le CTE sembrano abbastanza simili. Se volete sapere quando usarle, date un'occhiata a questo articolo sulla differenza tra CTE e viste in SQL.

DOVE

WHERE è una delle clausole più importanti di SQL. È comune quasi quanto SELECT.

WHERE In sostanza, descrive ciò che si sta cercando nella query. Si può usare con numeri o testo per restituire un valore o un intervallo di valori. WHERE può essere usata anche con DELETE per rimuovere alcuni dati o con UPDATE per modificare un record.

Ecco come appare WHERE con i numeri:

SELECT *
FROM table
WHERE id = 2021

Ed ecco WHERE con il testo:

SELECT * 
FROM best_sailors 
WHERE FirstName = 'Yannick' AND LastName = 'Bestaven'

Come si può vedere, WHERE è uno strumento molto potente. Offre molte opzioni quando si lavora con i dati.

Window Functions

Le funzioni finestra sono un altro ottimo strumento per chi vuole affinare le proprie conoscenze di SQL. Queste funzioni eseguono calcoli su un insieme di righe correlate alla riga corrente. Il termine "finestra" nella funzione finestra è dovuto al fatto che questo insieme di righe è chiamato "finestra" o "cornice".

Le funzioni finestra consentono di eseguire analisi statistiche, ad esempio classificando i dati in base al maggior numero di vendite, calcolando i totali dei ricavi correnti o utilizzando le medie mobili per analizzare le prestazioni dei negozi. Sono preziose quando si desidera confrontare i dati nel tempo e seguire le tendenze.

In pratica, le funzioni finestra aiutano a risolvere tutti gli aspetti importanti della business analytics. Se volete vedere alcuni semplici esempi pratici, consultate il nostro articolo sull' uso delle funzioni finestra. Se sapete che vi serviranno le funzioni di finestra, ecco un ottimo corso interattivo. Window Functions interattivo.

Leggere, ripetere, ricordare

Ben fatto: avete appena ampliato la vostra conoscenza dei termini SQL! Ma non avete ancora finito. Ricordate: più leggete, ripetete e imparate, più velocemente diventerete sicuri di discutere (e usare) SQL.

Per migliorare le vostre competenze in SQL, provate i corsi online di LearnSQL e visitate regolarmente il nostro blog. E non dimenticate di iscrivervi alla nostra newsletter per essere sempre informati su nuovi articoli e promozioni!

Ci sono affermazioni o termini SQL che vorreste vedere in questi articoli? Ditecelo nei commenti. Potrebbero essere inseriti nella nostra prossima carrellata di termini SQL per principianti. Restate sintonizzati!