15th Mar 2024 Tempo di lettura: 17 minuti 20 problemi pratici di SQL per utenti principianti e intermedi Alexandre Bruffa pratica su sql imparare sql Indice 20 problemi di Pratica su SQL con soluzioni Esercizio 1: Selezionare tutte le colonne Esercizio 2: Selezionare più colonne Esercizio 3: Selezionare valori distinti da una tabella Esercizio 4: Selezionare le colonne utilizzando WHERE Esercizio 5: Selezionare le colonne usando WHERE con il testo Esercizio 6: Selezionare le colonne usando WHERE e LIKE Esercizio 7: Selezione di colonne con WHERE e <> Esercizio 8: Selezionare colonne utilizzando WHERE e un operatore logico Esercizio 9: Selezione di colonne con WHERE, OR e AND Esercizio 10: Selezione di colonne con WHERE e NOT Esercizio 11: Ordinare i risultati di una query con ORDER BY Esercizio 12: Selezionare e filtrare le colonne e ordinare i risultati Esercizio 13: Raggruppamento di colonne e COUNT() Esercizio 14: Raggruppare le colonne e trovare la media Esercizio 15: GRUPPO PER COLONNE MULTIPLE Esercizio 16: GROUP BY e HAVING Esercizio 17: Selezionare le colonne di 2 tabelle con INNER JOIN Esercizio 18: Selezionare le colonne di 4 tabelle con LEFT JOIN Esercizio 19: Combinazione di INNER JOIN, GROUP BY e HAVING Esercizio 20: Un'altra query INNER JOIN, GROUP BY e HAVING Altri problemi di Pratica su SQL su LearnSQL.com SQL Practice: University Basic SQL Practice: A Store Pratica SQL di base: una corsa tra le query! Basic SQL Practice: Blog & Traffic Data Pratica su SQL Problemi: La strada da percorrere Volete diventare esperti di SQL? Provate a risolvere questi 20 problemi pratici di SQL! Sia che abbiate appena iniziato il vostro percorso in SQL, sia che vi stiate preparando per gli esami, dovete affinare le vostre competenze in SQL se volete diventare esperti. E sapete cosa si dice: la pratica rende perfetti! Come la maggior parte delle competenze, l'SQL si impara meglio con l'esperienza; la pratica dell'SQL consente di applicare le proprie conoscenze a scenari reali. Grazie alla pratica ripetuta, acquisirete la fiducia necessaria per affrontare compiti SQL complessi ed eccellere sia in ambito accademico che professionale. In questo articolo ho selezionato 20 problemi pratici di SQL tratti da corsi di livello principiante e intermedio. LearnSQL.it corsi di livello principiante e intermedio. Questi esercizi coprono i concetti fondamentali e quelli più avanzati, offrendo una progressione graduale per diventare un utente SQL esperto. Ogni esercizio include spiegazioni chiare e una soluzione. Molti esercizi di questo articolo sono ispirati alla nostra famosa Pratica su SQL traccia. I suoi 9 corsi e gli oltre 1.100 esercizi di codifica vi metteranno a dura prova! Se, dopo aver terminato questo articolo, desiderate altri "esercizi" di SQL, vi consiglio di visitare questo sito. Siete pronti? Cominciamo! Provate a risolvere ogni problema prima di leggere la soluzione. 20 problemi di Pratica su SQL con soluzioni Prima di iniziare, si consiglia di scaricare o inserire tra i preferiti la nostra scheda informativa gratuita SQL per principianti. Riassume i concetti di base di SQL e probabilmente vi tornerà utile. Per i seguenti problemi pratici, utilizzerò uno scenario che tutti conosciamo: un negozio. Ecco il diagramma del database: Come si può vedere, il store database ha 6 tabelle: La tabella clienti contiene informazioni sui clienti. Ha le seguenti colonne: customer_id: L'ID interno univoco del cliente. contact_name: Il nome completo del cliente. company_name: Il nome dell'azienda del cliente. contact_email: L'indirizzo e-mail del cliente. address: L'indirizzo stradale del cliente. city: La città di residenza del cliente. country: Il paese di residenza del cliente. La tabella product contiene un elenco di prodotti disponibili nel negozio. Le sue colonne sono: product_id: L'ID del prodotto. product_name: Il nome del prodotto. category_id: L'ID della categoria del prodotto. Questo si collega con category quantity_per_unit: La quantità di articoli del prodotto in un'unità. unit_price: Il prezzo del prodotto. units_in_stock: Il numero di unità disponibili del prodotto. discontinued: Se il prodotto è disponibile nel negozio (valore FALSO) o se è stato interrotto (VERO). La tabella category contiene informazioni sulle categorie dei prodotti: category_id: L'ID della categoria. name: Il nome della categoria. description: Una descrizione della categoria. parent_category_id: Se la categoria è una sottocategoria, punta alla categoria madre. Altrimenti, questa colonna sarà NULL. La tabella purchase contiene informazioni su ciascun ordine: purchase_id: L'ID dell'acquisto. customer_id: L'ID del cliente che ha effettuato l'acquisto. employee_id: L'ID del dipendente che si è occupato dell'ordine. total_price: Il prezzo totale dell'ordine. purchase_date: Il timestamp di ricezione dell'ordine. shipped_date: Il timestamp della spedizione dell'ordine. ship_address: L'indirizzo stradale a cui è stato spedito l'ordine. ship_city: La città in cui è stato spedito l'ordine. ship_country: Il Paese in cui è stato spedito l'ordine. La tabella purchase_item collega gli acquisti ai prodotti. Ha le seguenti colonne obbligatorie: purchase_id: L'ID dell'acquisto. product_id: L'ID del prodotto acquistato. unit_price: Il prezzo di un'unità di quel prodotto. quantity: Il numero di unità acquistate di quel prodotto. La tabella employee contiene informazioni sui dipendenti del negozio. Ha le seguenti colonne: employee_id: L'ID del dipendente. last_name: Il cognome del dipendente. first_name: Il nome del dipendente. birth_date: La data di nascita del dipendente. address: Indirizzo civico del dipendente. city: La città del dipendente. country: Il paese del dipendente. reports_to: L'ID del supervisore diretto del dipendente. È NULLO se il dipendente non dipende da nessuno. Esercizio 1: Selezionare tutte le colonne Esercizio Visualizzare tutti i dati della tabella product tabella. Soluzione SELECT * FROM product; Spiegazione In questa query, la clausola SELECT viene utilizzata per specificare le colonne che si desidera recuperare dalla tabella product. In questo caso, l'asterisco (*) sta per "tutte le colonne". La clausola FROM specifica la tabella da cui recuperare i dati. In questa query, è la tabella product tabella. In sostanza, la query chiede al database di restituire tutte le colonne per ogni riga della tabella dei prodotti. Esercizio 2: Selezionare più colonne Esercizio Visualizzare i nomi e gli indirizzi e-mail dei clienti. Il nome si trova nella colonna contact_name e l'e-mail nella colonna contact_email. Rinominare le colonne in name e email. Soluzione SELECT contact_name AS name, contact_email AS email FROM customer; Spiegazione In questa query, la clausola SELECT è usata per specificare le colonne che si vogliono recuperare dalla tabella customer. Si noti che le colonne sono separate da virgole. Quindi, si utilizza la parola chiave AS per rinominare la colonna contact_name in nome e contact_email in email. Questi nuovi nomi sono chiamati "alias". Come in precedenza, la clausola FROM è usata per indicare la tabella da cui si vogliono recuperare i dati; in questo caso, cliente. Mettendo insieme il tutto, la query chiede al database di recuperare le colonne contact_name e contact_email dalla tabella customer tabella. Chiede inoltre di visualizzare queste colonne rispettivamente come name e email. L'insieme dei risultati sarà costituito da queste due colonne alias per ogni riga della tabella. customer tabella. Esercizio 3: Selezionare valori distinti da una tabella Esercizio Visualizzare gli ID di tutti i clienti che hanno effettuato almeno un acquisto. Non devono essere visualizzati ID di clienti duplicati. Soluzione SELECT DISTINCT customer_id FROM purchase; Spiegazione Poiché vogliamo recuperare i clienti che hanno effettuato un acquisto, selezioniamo i loro ID dalla tabella che memorizza i dati degli acquisti, purchase. La clausola SELECT combinata con DISTINCT rimuove i valori duplicati di customer_id dall'insieme dei risultati. Esercizio 4: Selezionare le colonne utilizzando WHERE Esercizio Visualizzare tutti i dati di un cliente con ID 4. Soluzione SELECT * FROM customer WHERE customer_id = 4; Spiegazione Questa query recupera tutte le colonne (* rappresenta tutte le colonne) dalla tabella, ma solo se il valore della colonna è uguale a 4. customer ma solo se il valore della colonna customer_id è uguale a 4. La clausola WHERE filtra le righe per includere solo quelle che soddisfano la condizione indicata, ovvero che il valore della colonna customer_id sia uguale a 4. L'operatore = viene utilizzato per il confronto di uguaglianza. L'insieme dei risultati includerà tutte le colonne delle righe che soddisfano questa condizione. Esercizio 5: Selezionare le colonne usando WHERE con il testo Esercizio Visualizzare i nomi di tutti i clienti che vivono a Dallas. Soluzione SELECT contact_name FROM customer WHERE city = 'Dallas'; Spiegazione Questa query recupera tutte le colonne (*) dalla tabella customer dalla tabella. La clausola WHERE filtra le righe per includere solo quelle in cui il valore della colonna city è uguale a 'Dallas'. 'Dallas' è un valore stringa, quindi è racchiuso tra apici singoli. Esercizio 6: Selezionare le colonne usando WHERE e LIKE Esercizio Visualizzare tutti i dati dei prodotti il cui nome inizia con 'Beef'. Soluzione SELECT * FROM product WHERE product_name LIKE 'Beef%'; Spiegazione La condizione WHERE filtra le righe per includere solo quelle in cui il valore della colonna product_name inizia con 'Beef'. L'operatore LIKE viene utilizzato per la corrispondenza dei pattern: 'Beef%' è un pattern in cui 'Beef' è l'inizio del pattern e '%' è un carattere jolly che corrisponde a qualsiasi sequenza di caratteri successiva a 'Beef'. Si noti che l'operatore LIKE è sensibile alle maiuscole; i valori che iniziano con 'beef' o 'BEEF' non saranno inclusi nei risultati. Esercizio 7: Selezione di colonne con WHERE e <> Esercizio Visualizzare i nomi dei prodotti e i relativi ID di categoria per le categorie con un ID diverso da 1 (Food). Soluzione SELECT product_name, category_id FROM product WHERE category_id <> 1; Spiegazione Questa query recupera colonne specifiche (product_name e category_id) dalla tabella product dove il valore della colonna category_id è diverso da 1. L'operatore <> è l'opposto dell'operatore =; restituisce solo i valori che non soddisfano la condizione. Esercizio 8: Selezionare colonne utilizzando WHERE e un operatore logico Esercizio Visualizzare i nomi di tutti i clienti il cui nome aziendale è Oloo o Fliptune. Soluzione SELECT contact_name FROM customer WHERE company_name = 'Oloo' OR company_name = 'Fliptune'; Spiegazione Questa query recupera i nomi dei clienti dalla tabella customer dove il valore della colonna company_name è uguale a "Oloo" o "Fliptune". L'operatore OR viene utilizzato per combinare queste condizioni, indicando che una di esse deve essere vera affinché una riga sia inclusa nel set di risultati. Esercizio 9: Selezione di colonne con WHERE, OR e AND Esercizio Visualizzare i dati di tutti i prodotti della categoria con ID 1 (Alimenti) o 5 (Frutta e verdura) e con prezzo unitario superiore a 3,5. Soluzione SELECT * FROM product WHERE (category_id = 1 OR category_id = 5) AND unit_price > 3.5; Spiegazione Questa query recupera tutte le colonne della tabella product in cui il valore della colonna category_id è uguale a 1 o 5 e il valore della colonna unit_price è superiore a 3,5. Gli operatori logici OR e AND sono utilizzati per combinare queste condizioni. Si noti che le condizioni OR sono circondate da parentesi per indicare a SQL di eseguire prima questo blocco. Esercizio 10: Selezione di colonne con WHERE e NOT Esercizio Visualizzare il nome di tutti i prodotti ad eccezione di quelli non discontinui appartenenti alla categoria ID 3. Soluzione SELECT product_name FROM product WHERE NOT (discontinued IS TRUE AND category_id = 3); Spiegazione Questa query recupera tutte le colonne dalla tabella producttranne quelle in cui il valore della colonna category_id è uguale a 3 e il valore logico della colonna discontinued è TRUE. La parola chiave NOT nega la condizione circondata da parentesi, ovvero seleziona le righe in cui discontinued e category_id sono diversi da TRUE e 3. Esercizio 11: Ordinare i risultati di una query con ORDER BY Esercizio Visualizzare tutti i dati degli acquisti ordinati per data di spedizione. Gli acquisti con data di spedizione più recente devono essere visualizzati per primi. Soluzione SELECT purchase_id, total_price, shipped_date FROM purchase ORDER BY shipped_date DESC; Spiegazione Questa query recupera le colonne purchase_id, total_price e purchase_date dalla tabella e ordina il set di risultati in base alla colonna in ordine decrescente. purchase e ordina il set di risultati in base alla colonna shipped_date in ordine decrescente. La clausola ORDER BY ordina l'insieme dei risultati in base ai valori della colonna shipped_date. La parola chiave DESC sta per "discendente", il che significa che il set di risultati sarà ordinato in ordine decrescente (dalle date più recenti a quelle più antiche). Esercizio 12: Selezionare e filtrare le colonne e ordinare i risultati Esercizio Visualizzare tutti i dati relativi agli acquisti con un prezzo totale maggiore o uguale a 10. Gli acquisti con le date di spedizione più recenti devono essere visualizzati per primi. Soluzione SELECT * FROM purchase WHERE total_price >= 10 ORDER BY shipped_date DESC; Spiegazione Questa query recupera tutte le colonne della tabella purchase in cui il valore della colonna total_price è maggiore o uguale a 10. La query ordina inoltre il set di risultati in base alla data di spedizione più recente. Ordina inoltre il set di risultati in base alla colonna shipped_date in ordine decrescente (DESC). La condizione WHERE filtra le righe in modo da includere solo quelle in cui il valore della colonna total_price è maggiore o uguale a 10. Esercizio 13: Raggruppamento di colonne e COUNT() Esercizio Visualizzare tutti gli ID delle categorie e il numero di prodotti in esse contenuti. Soluzione SELECT category_id, COUNT(*) FROM product GROUP BY category_id; Spiegazione Questa query recupera il numero di prodotti in ogni categoria della tabella. product tabella. La clausola SELECT specifica che si vuole recuperare la colonna category_id e il conteggio delle occorrenze di ogni category_id distinto (la funzione aggregata COUNT(*)). Infine, la clausola GROUP BY raggruppa i risultati in base ai valori della colonna category_id. Essa assicura che il conteggio venga calcolato per ogni categoria_id unica. Esercizio 14: Raggruppare le colonne e trovare la media Esercizio Per tutti i clienti, visualizzare l'ID del cliente e il prezzo medio di tutti gli acquisti per quel cliente. Soluzione SELECT customer_id, AVG(total_price) FROM purchase GROUP BY customer_id; Spiegazione Questa query è simile all'esercizio precedente, ma questa volta si utilizza la funzione aggregata AVG() per visualizzare la media degli acquisti di ciascun cliente. La clausola SELECT restituisce la colonna customer_id e la media delle total_price per ogni customer_id distinta nella tabella. purchase tabella. Esercizio 15: GRUPPO PER COLONNE MULTIPLE Esercizio Per ogni coppia cliente-dipendente, trovare il prezzo totale degli acquisti effettuati da questo cliente e gestiti da questo dipendente. Visualizzare tre colonne: customer_id, employee_id, e il prezzo_totale degli acquisti. Nominare la terza colonna total_purchases_price. Soluzione SELECT customer_id, employee_id, SUM(total_price) AS total_purchases_price FROM purchase GROUP BY customer_id, employee_id; Spiegazione Questa query recupera i prezzi totali degli acquisti per ogni coppia cliente-dipendente. La clausola SELECT include la colonna customer_id, la colonna employee_id e la somma delle total_price per ogni customer_id nella tabella. purchase tabella. La clausola GROUP BY raggruppa i risultati in base ai valori delle colonne customer_id e employee_id. Esercizio 16: GROUP BY e HAVING Esercizio Trovare l'importo di acquisto più piccolo per ogni coppia cliente-dipendente. Mostrare solo le coppie per le quali ci sono almeno due acquisti. I nomi delle colonne devono essere customer_id, employee_id e minimum_price. Soluzione SELECT customer_id, employee_id, MIN(total_price) AS minimum_price FROM purchase GROUP BY customer_id, employee_id HAVING COUNT(total_price) >= 2; Spiegazione Questa query recupera i valori distinti nelle colonne customer_id e employee_id e il prezzo minimo di acquisto nella colonna total_price. Il prezzo minimo di acquisto è denominato minimum_price. La clausola GROUP BY raggruppa i risultati in base ai valori delle colonne customer_id e employee_id e la clausola HAVING filtra i risultati in modo da includere solo i gruppi in cui il numero di occorrenze è maggiore o uguale a 2. Vi sono piaciuti questi esercizi di GROUP BY? Ignacio L. Bisso ne ha altri per voi nel suo eccellente articolo Pratica su SQL: 10 esercizi su GROUP BY con soluzioni. Esercizio 17: Selezionare le colonne di 2 tabelle con INNER JOIN Esercizio Mostrare il cognome e il nome dei dipendenti che si occupano di ogni acquisto e l'indirizzo shipped_date di quell'acquisto. Soluzione SELECT last_name, first_name, shipped_date FROM employee JOIN purchase ON employee.employee_id = purchase.employee_id; Spiegazione Questa query esegue un'operazione INNER JOIN tra le tabelle employee e purchase e seleziona colonne specifiche (last_name, first_name e shipped_date) dalle tabelle unite. Combina le righe della tabella employee con le righe corrispondenti della tabella purchase in base alla colonna comune employee_id. Se non ci sono corrispondenze nella tabella purchase la riga non sarà inclusa nell'insieme dei risultati. Esercizio 18: Selezionare le colonne di 4 tabelle con LEFT JOIN Esercizio Visualizzare i nomi e le e-mail di tutti i clienti ed elencare i nomi dei prodotti acquistati e il prezzo del prodotto al momento dell'acquisto. Includere i clienti che non hanno effettuato acquisti. Non rinominare le colonne. Soluzione SELECT contact_name, contact_email, product_name, purchase_item.unit_price FROM customer LEFT JOIN purchase ON customer.customer_id = purchase.customer_id LEFT JOIN purchase_item ON purchase.purchase_id = purchase_item.purchase_id LEFT JOIN product ON purchase_item.product_id = product.product_id; Spiegazione Questa query esegue una tripla operazione di LEFT JOIN tra i file customer, purchase, purchase_item, e product e seleziona colonne specifiche (contact_name, contact_email, product_name e unit_price) dall'insieme dei risultati. Combina le righe della tabella customer con le righe corrispondenti della tabella purchase, purchase_item, e product in base alle colonne comuni customer_id, purchase_id, e product_id. Se non c'è corrispondenza nella tabella purchase i valori di NULL saranno inclusi nel set di risultati per le colonne della tabella. purchase_item tabella. Esercizio 19: Combinazione di INNER JOIN, GROUP BY e HAVING Esercizio Per ogni categoria, trovare il numero di prodotti fuori produzione. Mostrare solo le categorie con almeno tre prodotti fuori produzione. Ordinare le righe in base al numero di prodotti fuori produzione in ordine decrescente. Visualizzare due colonne: nome (il nome della categoria) e discontinued_products_number. Soluzione SELECT category.name, COUNT(product_id) AS discontinued_products_number FROM product JOIN category ON product.category_id = category.category_id WHERE discontinued IS TRUE GROUP BY category.name HAVING COUNT(product_id) >= 3 ORDER BY COUNT(product_id) DESC; Spiegazione Questa query esegue un'operazione di INNER JOIN tra le colonne product e category e le tabelle. Visualizza le category name e il conteggio delle occorrenze di ogni product_id distinta nel set di risultati. Combina le righe della tabella product con le righe corrispondenti della tabella category tabella in base alla colonna comune category_id. Le righe sono raggruppate per nome di categoria; la funzione aggregata COUNT() è utilizzata sulla colonna category_id per restituire il numero di prodotti in quella categoria. La clausola HAVING filtra per le categorie con almeno prodotti interrotti. Le righe sono visualizzate in ordine decrescente di ID prodotto (ORDER BY COUNT(product_id) DESC). Esercizio 20: Un'altra query INNER JOIN, GROUP BY e HAVING Esercizio Per ogni cliente, mostrare il numero di acquisti effettuati. Includere solo gli acquisti con un valore non NULL ship_city e mostrare solo i clienti il cui costo totale per tutti gli acquisti è superiore a 14. I nomi delle colonne devono essere contact_name e purchase_quantity. Ordinare le righe per contact_name. Soluzione SELECT contact_name, COUNT(*) AS purchase_quantity FROM purchase JOIN customer ON purchase.customer_id = customer.customer_id WHERE ship_city IS NOT NULL GROUP BY contact_name HAVING SUM(total_price) > 14 ORDER BY contact_name; Spiegazione Questa query esegue un'operazione INNER JOIN tra le colonne purchase e customer e seleziona contact_name e il conteggio delle occorrenze di ogni acquisto distinto dall'insieme dei risultati. Le righe sono raggruppate per nome del contatto. La clausola HAVING consente di filtrare il prezzo totale richiesto. Questi esercizi sulle JOIN vi hanno messo alla prova? Vi consiglio di leggere SQL Joins: 12 domande pratiche con risposte dettagliate di Tihomir Babic. Altri problemi di Pratica su SQL su LearnSQL.com Se vi sono piaciuti i problemi pratici precedenti, potete trovare altri problemi pratici di SQL su LearnSQL.it. Ogni problema di esercitazione è accuratamente progettato con suggerimenti, soluzioni e spiegazioni. Questo approccio garantisce che i principianti non solo risolvano il problema, ma imparino anche i concetti fondamentali di SQL. A differenza degli esercizi teorici convenzionali, i problemi pratici di LearnSQL.it sono pratici e collegati a scenari reali. Questi problemi realistici rafforzano la comprensione teorica e aumentano notevolmente la fiducia in se stessi. Ecco alcuni corsi di LearnSQL.it che raccomando in modo particolare se state cercando di fare più pratica: SQL Practice: University Il corso SQL Practice: University è ideale per gli studenti e per chi è alle prime armi con SQL. Basato su uno scenario di vita reale (un'università immaginaria), questo corso fornisce 156 esercizi interattivi di SQL. Gli esercizi iniziali si concentrano sulla costruzione di query SELECT di base, mentre quelli successivi sfidano a creare query SQL avanzate. Verranno utilizzati SELECT, WHERE, varie JOIN, GROUP BY, HAVING, ORDER BY, operatori di set e subquery. Basic SQL Practice: A Store Il corso Basic SQL Practice: A Store è una scelta eccellente per chi gestisce un negozio fisico o un negozio online e desidera migliorare le proprie capacità di gestione dei dati. Seguendo questo corso, non solo migliorerete la vostra comprensione dei dati, ma potenzialmente aumenterete anche i vostri profitti. Se gestite un'applicazione "white-label" su misura per i negozianti (ad esempio un ERP), questo corso è pensato per voi. Copre un'ampia gamma di argomenti, tra cui prodotti, categorie, inventario, acquisti, gestione dei dipendenti e altro ancora. Pratica SQL di base: una corsa tra le query! Il corso Pratica SQL di base: una corsa tra le query! corso prevede un lavoro pratico con dati autentici. Approfondite il database con le informazioni delle Olimpiadi di Rio, dei Campionati mondiali IAAF di Doha del 2019 e dei Campionati mondiali IAAF di Londra del 2017. Scoprite i campioni degli sprint, delle maratone e delle lunghe distanze, determinate i Paesi con le migliori prestazioni, trovate le velocità e le distanze medie e molto altro ancora. Se siete appassionati di sport, atletica o approfondimenti sulla pista, questo corso offre un'esperienza su misura per voi! Basic SQL Practice: Blog & Traffic Data Il corso Basic SQL Practice: Blog & Traffic Data è pensato per chi gestisce un blog ad alto traffico. Le vostre conoscenze di SQL saranno messe alla prova mentre analizzate vari aspetti dei dati del blog, tra cui la popolarità degli articoli, la valutazione delle prestazioni degli autori e il successo delle promozioni di prodotti basate sugli articoli. Che siate proprietari di un blog, manager o studenti di SQL, questo corso è fatto su misura per voi. I problemi pratici con scenari reali sono i migliori. Jakub Romanowski ha riassunto i principali luoghi in cui trovare set di dati nel suo articolo Where Can I Find Free Online Data Sets to Practice SQL? Pratica su SQL Problemi: La strada da percorrere Spero davvero che questo articolo vi abbia aiutato a fare pratica con l'SQL! Ogni sfida che affrontate è un passo avanti verso la padronanza di SQL. Che siate studenti alle prime armi o specialisti che desiderano affinare le proprie capacità, ogni problema di pratica è un tassello per la vostra base di apprendimento. Abbracciate il viaggio, godetevi il processo e ricordate che ogni problema pratico di SQL vi porta un passo più vicino a diventare un esperto. Continuate a codificare, continuate a crescere e continuate a fare SQL per raggiungere il successo! Un ultimo consiglio: ogni mese pubblichiamo un nuovo corso pratico di SQL nella nostra traccia Monthly SQL Challenges. Questo vi permetterà di imparare risolvendo problemi SQL in modo continuo e progressivo. Grazie per aver letto questo articolo; ci vediamo nel prossimo! Tags: pratica su sql imparare sql