3rd Jul 2025 Tempo di lettura: 6 minuti Come scrivere query SQL comprensibili a chiunque Jakub Romanowski sql tips nozioni di base di sql Indice Perché è importante scrivere un SQL comprensibile Capire l'ordine di elaborazione di SQL Suddividere le query lunghe in parti (usando le CTE) Usare il maiuscolo per le parole chiave SQL Indentare il codice Una clausola per riga Utilizzare alias significativi Usare AS per rinominare le colonne Evitare SELECT * Aggiungere commenti utili Usare gli indici quando è necessario Non ripetersi Utilizzare strumenti che aiutano Pronti a continuare a imparare? Scrivere SQL che funziona è una cosa. Scrivere un SQL che possa essere letto da altri e dire: "Oh, ho capito!" è un livello completamente diverso. E onestamente? È una delle cose più utili che si possano imparare se si lavora con i dati. Sia che stiate costruendo dei report, analizzando il comportamento dei clienti o rispondendo a una domanda veloce del vostro capo, probabilmente userete l'SQL. E se l'SQL è disordinato o confuso, rallenterete tutti, compreso voi stessi. Questa guida vi aiuterà a scrivere query SQL facili da leggere, semplici da modificare e che abbiano un senso per gli altri, anche se siete ancora alle prime armi con l'SQL. Volete esercitarvi in SQL con esercizi adatti ai principianti? Provate il corsoSQL per principianti su LearnSQL.com. Perché è importante scrivere un SQL comprensibile L'SQL non è solo per le macchine. Certo, il database esegue le query, ma anche le persone reali devono leggerle. E se il vostro SQL è disordinato o confuso, non solo rendete la vita più difficile agli altri, ma anche a voi stessi. Scrivere un SQL chiaro fa risparmiare tempo. È più facile risolvere i bug, collaborare con i colleghi e rivedere il vecchio codice senza doversi grattare la testa. Pensate a un biglietto per il vostro futuro o per un compagno di squadra: fatelo abbastanza chiaro da non doverlo tradurre. Un SQL leggibile dimostra anche che ci tenete. Fa parte dell'essere un buon comunicatore. E quando si è in un team, questo è molto importante. Avete mai aperto una query gigante di 100 righe senza commenti e con nomi di variabili poco chiari? Ora immaginate di cercare di risolvere il problema sotto pressione. Non è divertente. Capire l'ordine di elaborazione di SQL Potete scrivere l'SQL dall'alto verso il basso, ma il database non lo legge in questo modo. Ecco l'ordine effettivo che segue: FROM WHERE GROUP BY HAVING SELECT ORDER BY LIMIT Capirlo aiuta a strutturare la logica e a individuare più facilmente gli errori. Suddividere le query lunghe in parti (usando le CTE) Invece di stipare tutto in un'unica lunga query, si possono usare le Espressioni di tabella comuni (CTE) per dividere la logica in passi gestibili. Ecco una versione che utilizza una sottoquery: SELECT * FROM ( SELECT customer_id, COUNT(*) AS order_count FROM orders GROUP BY customer_id ) AS subquery WHERE order_count > 5; Ecco la stessa logica utilizzando una CTE: WITH orders_cte AS ( SELECT customer_id, COUNT(*) AS order_count FROM orders GROUP BY customer_id ) SELECT * FROM orders_cte WHERE order_count > 5; Questa versione è più facile da seguire. Racconta la storia passo per passo e rende il codice più facile da riutilizzare, testare e mantenere. Usare il maiuscolo per le parole chiave SQL L'uso delle maiuscole per parole chiave come SELECT, FROM e WHERE le fa risaltare e migliora la leggibilità. È una pratica comune che rende le query più facili da analizzare. Indentare il codice L'indentazione mostra come le diverse parti della query sono collegate tra loro. Quando si usano sottoquery o logiche complesse, il rientro rende chiara la struttura. Confrontate questi esempi: Senza indentazione: SELECT customer_id FROM (SELECT customer_id, COUNT(*) AS total_orders FROM orders GROUP BY customer_id) AS subquery WHERE total_orders > 5; Con rientri: SELECT customer_id FROM ( SELECT customer_id, COUNT(*) AS total_orders FROM orders GROUP BY customer_id ) AS subquery WHERE total_orders > 5; Una clausola per riga Suddividere le query in righe separate per ogni clausola (SELECT, FROM, WHERE, ecc.) ne facilita la scansione e il debug: SELECT customer_id, COUNT(*) AS order_count FROM orders WHERE status = 'delivered' GROUP BY customer_id; Utilizzare alias significativi Evitare alias brevi e vaghi come a, b, o t1. Usare invece alias che descrivano la tabella: SELECT o.customer_id FROM orders AS o O meglio ancora: SELECT orders.customer_id FROM orders Usare gli alias solo se necessario e assicurarsi che aiutino, non che confondano. Usare AS per rinominare le colonne Se si creano nuove colonne, come totali o medie, usare AS per dare loro nomi chiari: SELECT COUNT(*) AS total_orders Questo rende i risultati più facili da capire e mantiene l'output chiaro e professionale. Evitare SELECT * L'acquisizione di tutte le colonne con SELECT * può sembrare facile, ma può causare problemi: Include dati inutili o sensibili Rallenta le query Rende il codice più difficile da capire e da mantenere. Elencare invece le colonne di cui si ha effettivamente bisogno: SELECT customer_id, order_date, total_amount FROM orders Aggiungere commenti utili Utilizzate -- per aggiungere commenti in SQL. I commenti spiegano perché la query fa qualcosa, il che è spesso più utile di ciò che fa. Esempio: -- Only show active customers who ordered in the last 30 days WHERE customer_status = 'active' AND order_date >= CURRENT_DATE - INTERVAL '30 days' I commenti sono come appunti per il vostro futuro, o per la prossima persona che lavorerà sulla query. Usare gli indici quando è necessario Se si filtra o ci si unisce spesso a una colonna specifica, questa potrebbe beneficiare di un indice. Gli indici aiutano il database a trovare i dati più velocemente. Se non siete sicuri di quali colonne siano indicizzate, chiedete all'amministratore del database o controllate lo schema. Non ripetersi Se state calcolando qualcosa di complesso, fatelo una volta sola e riutilizzatelo, senza ripetere la logica. Le CTE sono perfette per questo scopo: WITH order_totals AS ( SELECT customer_id, SUM(total_amount) AS total_spent FROM orders GROUP BY customer_id ) SELECT * FROM order_totals WHERE total_spent > 1000; Utilizzare strumenti che aiutano Ecco alcuni strumenti adatti ai principianti che possono facilitare la scrittura di SQL: SQL Formatter - Pulisce automaticamente il codice con spaziature e strutture corrette. Provatene uno in VS Code o nel vostro editor SQL preferito. Abbellitori online - Siti come org permettono di incollare query disordinate e di ottenere immediatamente una versione pulita. SQL Linters - Questi strumenti controllano le query alla ricerca di errori o formattazioni incoerenti e suggeriscono miglioramenti. Sono ottimi per imparare le migliori pratiche man mano che si procede. L'uso di questi strumenti aiuta a costruire abitudini migliori e a scrivere più velocemente un SQL più chiaro. Pronti a continuare a imparare? Siete arrivati fin qui e questo vi mette già in una posizione di vantaggio. Se volete continuare a sviluppare le vostre competenze in modo pratico e divertente, il passo successivo migliore è la pratica. Ecco alcune risorse utili da LearnSQL.it: SQL per principianti - Costruite le vostre basi con le competenze essenziali di SQL. SQL JOIN - Imparate a combinare i dati di più tabelle. 20 esempi di query SQL di base per principianti Scegliete una query disordinata dal vostro lavoro e ripulitela utilizzando le nozioni apprese. Poi fatene un'altra. Ben presto, scrivere SQL pulito e facile da capire vi sembrerà naturale. Tags: sql tips nozioni di base di sql