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

Imparate l'SQL in pausa pranzo

Pensate che imparare SQL vi aiuterà nella vostra carriera? Avete ragione.

SQL è uno dei linguaggi informatici più facili da imparare. Al giorno d'oggi molti dipendenti non informatici possiedono competenze in SQL e le utilizzano per ampliare le proprie capacità professionali. Inoltre, sempre più aziende incoraggiano i propri dipendenti di aree non IT (come le vendite, la pubblicità e le finanze) a imparare e utilizzare SQL. Uno dei vantaggi di dotare i dipendenti di competenze SQL è che una volta risposto a una domanda sui dati, i risultati genereranno una nuova domanda sui dati e poi forse una cascata di altre domande sui dati. Un dipendente non informatico in grado di rispondere a domande sui dati aziendali con SQL aumenterà le sue conoscenze sull'azienda e sulla produttività. Scegliete l'SQL e diventate un solido collaboratore della vostra azienda!

SQL è facile: proviamo una query di base

Sapete perché l'SQL è un linguaggio facile da imparare? Perché è molto simile al linguaggio naturale, in particolare all'inglese. La maggior parte degli altri linguaggi informatici richiede tecniche di programmazione complesse, ma SQL utilizza comandi relativamente semplici. In SQL è sufficiente descrivere i dati desiderati. Facile!

Tuttavia, SQL ha bisogno di un database in cui i dati sono organizzati e memorizzati, ed è necessario conoscere un po' il database, anche se si conosce solo la parte del database a cui si è interessati. Vediamo un semplice esempio di database. Supponiamo di lavorare per un'azienda che ha in programma di creare filiali in alcuni nuovi paesi e città. Abbiamo bisogno di un database con tutti i paesi e le città del mondo, per poter ricercare le località migliori per la creazione delle nuove filiali. Il requisito per la creazione di una nuova filiale è che la capitale abbia una popolazione superiore a 4 milioni di abitanti.

In un database, i dati dello stesso tipo sono raggruppati in tabelle. Nel nostro database di esempio abbiamo due tabelle: COUNTRIES e CITIES. Nell'immagine seguente è possibile vedere il database, ma non tutti i dati vengono mostrati.

Esempio di COUNTRIES tabella

NAMECONTINENTINDEPENDENCE_DAYOFFICIAL_LANGUAGE
United StatesAmericas1796-07-04english
FranceEurope1789-07-14french
ArgentinaAmericas1816-07-09spanish
BrasilAmericas1822-09-07portuguese

Esempio di CITIES Tabella

NAMEPOPULATIONCOUNTRYIS_CAPITAL
Washington4543109United StatesYES
New York8765998United StatesNO
Paris12876371FranceYES
Buenos Aires3853728ArgentinaYES
Rio de Janeiro5873422BrasilNO

Possiamo considerare ogni query come un caso aziendale, dove il punto di partenza è una domanda aziendale a cui rispondere utilizzando i dati del database. Lo strumento per estrarre la risposta dal database è una query SQL. Per ogni diversa domanda aziendale è necessario creare una query SQL diversa.

Domanda di lavoro:

Quali sono tutte le capitali del mondo con una popolazione superiore a 4.000.000 di abitanti?

Di seguito è riportata la query SQL per rispondere a questa domanda.

SELECT	NAME
FROM		CITIES
WHERE	IS_CAPITAL = 'YES'
AND	POPULATION > 4000000

Come si può notare, questa query è molto semplice e, se la si legge, sembra una frase in inglese che descrive esattamente i dati che stiamo cercando.

In base ai dati mostrati prima, il risultato di questa query sarà

NAME
Washington
Paris

Una strategia per scrivere query SQL semplici

Secondo la mia esperienza personale, dopo alcuni anni di lavoro con SQL, il modo migliore e più semplice per imparare a creare le prime query in SQL è seguire un processo mentale di tre domande. Cercherò di spiegare il processo mentale che seguo quando creo una query SQL. Come abbiamo già detto, il nostro punto di partenza è una domanda di lavoro.

Domanda di lavoro:

Quali sono i nomi dei Paesi in cui l'inglese è la lingua ufficiale?

Il processo per risolvere questa domanda è il seguente:

Primo passo: Ponetevi questa domanda: Dispongo di una tabella con tutti i dati necessari per rispondere a questa domanda di lavoro?

Se sì, qual è questa tabella? Il nome della tabella deve essere inserito nella clausola FROM. Il risultato di questo passaggio è: FROM COUNTRIES. Congratulazioni, avete già la clausola FROM della query!

Lezione appresa: Ogni query SQL ha bisogno di una clausola FROM seguita dalla tabella da cui vengono presi i dati.

Secondo passo: Una volta identificata la tabella con cui lavorare, è necessario pensare alla clausola WHERE. Chiedetevi: quali sono i record (righe) della tabella di cui ho bisogno? Che cosa hanno in comune? Come posso definire una condizione (come IS_CAPITAL = 'YES') per questi record? Per la nostra domanda particolare, la condizione è: WHERE OFFICIAL_LANGUAGE = 'english'.

Lezione appresa: In una query SQL, la clausola WHERE viene utilizzata per isolare i record che si stanno cercando. La clausola WHERE necessita di una condizione, come OFFICIAL_LANGUAGE = 'english'. Altre condizioni possono essere più complesse.

Terzo passo: Quali dati si stanno cercando: la città NAME, il sito POPULATION, o forse entrambi? Tutti questi dati devono essere presenti nell'elenco SELECT. Nel nostro esempio sarà SELECT NAME, perché stiamo cercando solo il nome del paese.

Lezione appresa: Ogni query SQL necessita di una clausola SELECT seguita da tutte le colonne che si desidera estrarre dalla tabella.

Quindi, una volta ottenuti i tre pezzi della nostra query, dobbiamo metterli insieme. I pezzi ottenuti DEVONO essere nel seguente ordine:

SELECT NAME
FROM COUNTRIES
WHERE OFFICIAL_LANGUAGE = 'english'

Creiamo una coppia di query aggiuntive

Se avete completato la sezione precedente, conoscete già le basi di una query SQL. Continuiamo con una coppia di query con un ulteriore livello di complessità.

La prima query prevede una clausola WHERE più complessa. Supponiamo che il vostro capo voglia un elenco di città in cui la vostra azienda potrebbe aprire nuove filiali. Si vogliono considerare solo le città degli Stati Uniti con una popolazione superiore a 1.000.000 di abitanti. L'elenco dovrebbe escludere New York e Washington, D.C., perché la vostra azienda ha già delle filiali in quelle città.

Domanda commerciale:

Quali sono i nomi delle città degli Stati Uniti con una popolazione superiore a 1.000.000 di abitanti?

Seguendo la tecnica appresa nella sezione precedente, il primo e il terzo passo sono davvero facili da eseguire. I risultati di questi passaggi sono riportati di seguito:

Primo passo: Questo passo è molto semplice e dà come risultato l'affermazione: FROM CITIES

Secondo passo: Per questa domanda di business, questo è il passo più complesso da risolvere. Vediamo come risolverlo. Per questa query dobbiamo utilizzare un connettore logico chiamato AND. Forse vi ricordate di AND a scuola. Vogliamo trovare le città che soddisfano le tre condizioni seguenti:

  • COUNTRY = 'United States'
  • POPULATION > 1000000
  • NAME NOT IN ('New York', 'Washington')

Se poi colleghiamo tutte queste condizioni utilizzando AND, otteniamo il seguente risultato:

WHERE COUNTRY = 'United States' AND POPULATION > 1000000 AND NAME NOT IN ('New York', 'Washington')

Terzo passo: Anche questo passo è molto semplice: SELECT NAME

Quindi, mettendo insieme tutti i pezzi, la query completa sarà:

SELECT NAME
FROM CITIES
WHERE COUNTRY = 'United States' AND POPULATION > 1000000 AND NAME NOT IN ('New York', 'Washington')

L'esempio finale di query sarà mostrato in modo più conciso. L'interpretazione può essere letta dal codice SQL stesso.

Domanda commerciale:

Quali sono i nomi di tutti i paesi di lingua spagnola nelle Americhe che sono stati fondati nel XVII secolo?

SELECT NAME, INDEPENDENCE_DAY
FROM COUNTRIES
WHERE CONTINENT = 'Americas'
AND INDEPENDECE_DAY BETWEEN '1700-01-01' AND '1800-12-31'
AND OFFICIAL_LANGUAGE = 'spanish'

I prossimi passi

I primi passi con l'SQL sono molto semplici: è possibile eseguire la prima query in poche ore o addirittura in pochi minuti. Se volete imparare a creare query SQL, LearnSQL.it ha una lunga esperienza nell'aiutare i non informatici a imparare SQL.