Le query SQL vengono utilizzate per comunicare con i database ed eseguire le operazioni con e attraverso di esso. Ad esempio, utilizziamo le query per aggiornare i dati su un database o recuperarne i dati. Grazie a queste funzioni delle query, esse sono ampiamente utilizzate da persone che lavorano prevalentemente con i database. Oltre a eseguire operazioni di database accurate, una query deve anche essere performante, veloce e leggibile. Conoscere alcune pratiche quando scriviamo una query aiuterà a soddisfare questi criteri e permetterà la scrittura di query più efficienti. Ovviamente, queste interrogazioni sono scritte in linguaggio SQL, ma facciamo un passo indietro.
Linguaggio SQL: cos’è?
Ogni volta che ci interroghiamo circa cos è SQL, per rispondere dobbiamo partire col dire che Il significato di SQL è Structured Query Language ed è il linguaggio di interrogazione dei database relazionali (RDBMS), progettato per le operazioni di creazione, modifica, inserimento, gestione di tabelle, dati e schemi di database. SQL è, quindi, fondamentale per gestire i dati contenuti nei database. È in grado di analizzare e manipolare dati di qualsiasi entità o dimensione. Per questo diventa importantissimo saper scrivere una query leggibile ed efficiente.
Nel corso della tua vita da programmatore informatico, ti interfaccerai spesso con il linguaggio SQL, non solo in ambito di sviluppo web. Si tratta di un linguaggio universale nel mondo dello sviluppo, per questo è fondamentale apprenderlo quando si è all’inizio del proprio percorso.
È facile pasticciare con SQL senza delle linee guida adeguate.
Dal momento che è frequente cadere in errore con le proprie abitudini di scrittura del linguaggio SQL, puoi finire rapidamente per scrivere un codice confuso che nessuno capisce, neppure tu! Questo, quindi, è l’articolo giusto per capire come migliorare le proprie query.
- Usa il MAIUSCOLO per le keyword SQL – si tratta di una “good habit” molto semplice, ma funzionale. Usa lettere maiuscole per le parole chiave SQL (SELECT, FROM, CREATE, ecc…) e minuscole per i nomi di tabelle e colonne. È anche una buona pratica usare il maiuscolo per le funzioni SQL (FIRST_VALUE(), DATE_TRUNC(), ecc…).
- Evita l’utilizzo della notazione * nelle query SELECT SQL – L'utilizzo delle istruzioni SELECT * nelle query può causare risultati imprevisti e problemi di prestazioni delle query. L'utilizzo di un segno di asterisco in una query provoca un consumo ridondante delle risorse del database perché recupererà tutte le colonne della tabella. In particolare, l'utilizzo di SELECT * provoca il consumo di più risorse di rete e disco. Per prevenire questo tipo di problemi, dobbiamo scrivere esplicitamente i nomi delle colonne nelle nostre query SQL. Vediamo un esempio:
1. SELECT * FROM students;
possiamo trasformare questa query in modo più efficiente scrivendo esplicitamente i nomi delle colonne di cui abbiamo bisogno.
1. SELECT name, age, average marks FROM students;
- Utilizzare alias per migliorare la leggibilità delle interrogazioni – è risaputo che gli alias sono un modo conveniente per rinominare tabelle o colonne che hanno nomi poco sensati o troppo simili ad altri. Non esitare a dare un alias alle tabelle e colonne quando i loro nomi non sono significativi e sfrutta l’operatore ‘AS’ per rinominare queste strutture dati nel momento in cui vengono selezionate.
- Non trascurare le colonne NULLABLE nelle query SQL – Un valore NULL in una riga specifica risulta come un valore sconosciuto nonostante questo valore non punta a zero o ad un valore vuoto. A causa di questa particolare caratteristica del valore NULL, dobbiamo tenere conto delle colonne nullable nelle query. Quando filtriamo il NULL o escludiamo le righe NULL in una query, non possiamo utilizzare l'operatore di uguaglianza (=) nella clausola WHERE. Il modo corretto per confrontare i valori NULL consiste nell'utilizzare gli operatori IS NULL e IS NOT NULL. Un’alternativa è sfruttare la funzione COUNT(), la quale conta e restituisce il numero di colonne dal set di risultati della query. Tuttavia, la funzione COUNT(*) conta tutte le righe del set di risultati della query, ma se sostituiamo il nome della colonna con il segno di asterisco COUNT(nome_colonna), la funzione conta solo i valori non nulli.
- Aggiungi i commenti necessari alle query SQL – i commenti SQL corrispondono a righe di testo normale che possono essere aggiunte alle query senza essere analizzate ed eseguite dal motore di query. Principalmente, i commenti servono ad aggiungere una descrizione o disabilitare alcuni blocchi di codice delle query. Tuttavia, l'aggiunta di spiegazioni brevi e comprensibili alle query SQL è una best practice perché, nel tempo, lo scopo della query e il suo utilizzo da parte dell'applicazione possono essere dimenticati. In questo caso, il processo di mantenimento e refactoring della query sarà faticoso. È sempre buon grado documentare il proprio codice, anche nel linguaggio SQL. Ancora meglio se si riesce a standardizzare il commento SQL aggiungendo brevi informazioni che aiutano il processo di sviluppo e refactoring, adottando questo stile di formattazione a tutti i file SQL.
Per il resto, tanta pratica e tante applicazioni per imparare in profondità il linguaggio SQL saranno necessari per diventare un esperto di questa tecnologia, datata quanto efficace. Adottare determinate pratiche, aiuta ad apprendere più in fretta un concetto, che si tratti di un comando, di una struttura o di una relazione logica da dover scrivere in SQL.
Non trascurare il linguaggio SQL, poiché è pane per i denti di un vero programmatore informatico!