7 concetti SQL che dovresti conoscere per la scienza dei dati
Ti sei mai ritrovato a scavare in un database, cercando di estrarre le informazioni di cui hai bisogno, ma sentendoti come se stessi solo grattando la superficie? È qui che entra in gioco SQL.
SQL, o Structured Query Language, è un potente strumento che ti consente di comunicare con i database ed estrarre i dati di cui hai bisogno in modo strutturato ed efficiente. In qualità di data scientist, sapere come utilizzare SQL in modo efficace è fondamentale per l'accesso e l'analisi dei dati.
In questo articolo tratteremo sette concetti SQL essenziali che ti forniranno una solida base per lavorare con i database. Sia che tu stia appena iniziando il tuo viaggio nella scienza dei dati o che stia cercando di rispolverare le tue abilità, questi concetti ti prepareranno per il successo.
Quindi iniziamo!
Istruzione SELEZIONA
- L'istruzione SELECT è uno strumento essenziale per il recupero dei dati da un database. Ti consente di specificare quali colonne desideri recuperare o utilizzare
*per selezionare tutte le colonne. Puoi anche utilizzare una clausola WHERE per filtrare i risultati e operatori logici come AND, OR e NOT per creare filtri più complessi. - Ad esempio, supponiamo di voler recuperare dalla tabella "clienti" tutti i clienti che vivono nella città di New York:
SELECT * FROM customers WHERE city = 'New York';
SELECT first_name, last_name, email FROM customers WHERE state = 'NY' AND last_name = 'Smith';
SELECT * FROM orders LIMIT 5;
Quando si lavora con i database, è spesso necessario combinare i dati di più tabelle. È qui che entra in gioco JOIN.
Esistono due tipi principali di JOIN: INNER JOIN e OUTER JOIN.
- INNER JOIN combina le righe di due o più tabelle in base a un valore corrispondente in una colonna comune. Restituisce solo le righe in cui viene trovata una corrispondenza in entrambe le tabelle.
SELECT orders.order_id, customers.first_name, customers.last_name
FROM orders
INNER JOIN customers
ON orders.customer_id = customers.customer_id;
- OUTER JOIN combina le righe di due o più tabelle, incluse le righe che non hanno un valore corrispondente nella colonna comune. Esistono tre tipi di OUTER JOIN: LEFT JOIN, RIGHT JOIN e FULL OUTER JOIN.
- LEFT JOIN restituisce tutte le righe della tabella di sinistra e tutte le righe corrispondenti della tabella di destra. Se non c'è corrispondenza, i valori NULL verranno visualizzati nelle colonne della tabella di destra.
- RIGHT JOIN restituisce tutte le righe della tabella di destra e tutte le righe corrispondenti della tabella di sinistra. Se non c'è corrispondenza, i valori NULL verranno visualizzati nelle colonne della tabella di sinistra.
- FULL OUTER JOIN restituisce tutte le righe di entrambe le tabelle, indipendentemente dal fatto che esista una corrispondenza nella colonna comune. Se non c'è corrispondenza, i valori NULL verranno visualizzati per le colonne non corrispondenti.
SELECT orders.order_id, customers.first_name, customers.last_name
FROM orders
LEFT JOIN customers
ON orders.customer_id = customers.customer_id;
L'uso di JOIN è un modo efficace per combinare dati da più tabelle ed eseguire query più complesse.
Funzioni aggregate
Le funzioni di aggregazione vengono utilizzate per eseguire calcoli sui dati e restituire un singolo risultato. Le funzioni di aggregazione comuni includono SUM, AVG e COUNT.
- Ecco un esempio di utilizzo della funzione SOMMA per sommare le vendite nella tabella "ordini":
SELECT SUM(amount) FROM orders;
SELECT AVG(amount) FROM orders;
SELECT COUNT(*) FROM orders;
SELECT COUNT(amount) FROM orders;
È inoltre possibile utilizzare la clausola GROUP BY per raggruppare i risultati di una funzione di aggregazione in base a una o più colonne. Per esempio:
SELECT COUNT(*), country FROM customers
GROUP BY country;
L'utilizzo di funzioni di aggregazione è un modo utile per eseguire calcoli sui dati e ottenere informazioni dettagliate dai risultati.
Sottoquery
Le sottoquery vengono utilizzate per creare query più complesse nidificando un'istruzione SELECT all'interno di un'altra clausola SELECT, FROM, WHERE o HAVING.
- Ecco un esempio di utilizzo di una sottoquery nella clausola SELECT:
SELECT first_name, last_name
FROM customers
WHERE customer_id = (SELECT customer_id FROM orders WHERE amount > 100);
SELECT * FROM (SELECT * FROM customers WHERE city = 'New York') AS temp;
UNIONE e UNIONE TUTTI
UNION e UNION ALL vengono utilizzati per combinare i risultati di più istruzioni SELECT in un singolo set di risultati.
UNION combina i risultati di due o più istruzioni SELECT e rimuove eventuali righe duplicate.
- Ecco un esempio di utilizzo di UNION:
SELECT * FROM customers WHERE city = 'New York'
UNION
SELECT * FROM customers WHERE city = 'Los Angeles';
- Ecco un esempio di utilizzo di UNION ALL:
SELECT * FROM customers WHERE city = 'New York'
UNION ALL
SELECT * FROM customers WHERE city = 'Los Angeles';
Valori NULL
I valori NULL rappresentano dati mancanti o sconosciuti in un database. Sono diversi da zero (0) o da una stringa vuota, in quanto indicano l'assenza di un valore.
È possibile utilizzare gli operatori IS NULL e IS NOT NULL per filtrare i valori NULL in una query.
- Ecco un esempio di utilizzo di IS NULL:
SELECT * FROM customers WHERE last_name IS NULL;
SELECT * FROM customers WHERE last_name IS NOT NULL;
Congratulazioni per essere arrivato alla fine di questo articolo! Ora dovresti avere una solida base in sette concetti SQL essenziali per la scienza dei dati: SELECT, JOIN, funzioni di aggregazione, sottoquery, UNION e UNION ALL e valori NULL.
Padroneggiare questi concetti ti consentirà di comunicare efficacemente con i database ed estrarre i dati necessari per le tue analisi. Ma non fermarti qui: c'è sempre altro da imparare e fare pratica quando si tratta di SQL.
Se ti è piaciuto questo articolo e vuoi rimanere aggiornato con altri contenuti di data science, assicurati di seguirmi su Medium! Pubblico regolarmente articoli su una varietà di argomenti relativi ai dati e mi piacerebbe averti con te durante il viaggio.
Alla prossima volta, buone domande!

![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































