SQL è un linguaggio di interrogazione utilizzato per creare, modificare e gestire i dati di un database relazionale. Il significato di SQL sta in Structured Query Language. Attenzione a non confondere i linguaggi. SQL non è un linguaggio di programmazione, bensì un linguaggio di interrogazione.
Basato sul modello relazionale si tratta di uno standard riconosciuto dall’American National Standard Institute (ANSI) e dall’ISO. È uno dei linguaggi più popolari tra gli sviluppatori per manipolare i dati all’interno del database, in quanto molto facile da utilizzare e da comprendere.
Il linguaggio SQL è basato su un sistema di query (interrogazioni) che vengono fatte dall’utente al database in base alle informazioni che si vogliono ottenere. La popolarità del linguaggio SQL ha fatto sì che venga incorporato all’interno di numerosi database commerciali come MySQL, Oracle, MS SQL…
Per padroneggiare i database e il linguaggio SQL è importante ricordare i comandi e le query per interrogare il db da cui si vogliono estrarre i dati.
- Creare il database: una query che è sempre importante ricordare per iniziare a familiarizzare con SQL è CREATE. In questo caso specifico se viene utilizzata come: CREATE DABATASE prova_db;
Saremo in grado di creare un db vuoto.
- Inserire un’entità nel database: con il comando INSERT andiamo a inserire un record all’interno di una tabella del db. Per comprenderne il funzionamento, vediamo un esempio nel linguaggio SQL: INSERT INTO student (id, name, age) VALUES (‘1’, ‘Kevin’, 25);
In questa semplice query abbiamo aggiunto alla tabella student un nuovo record contenente i valori scritti dopo VALUES.
- Selezionare un’entità nel database: continuando a gestire i dati tra le tabelle di un DB è sempre cruciale ricordare come visualizzare i record di una tabella. Il risultato è generato dal comando SELECT. Vediamo un breve esempio in SQL:
SELECT * FROM student;
In questo modo visualizzeremo tutti i record della tabella studente. Il SELECT è molto potente perché ci permette di puntare a specifici campi del record.
- Visualizzare solo specifici record da una tabella: il linguaggio SQL mette a disposizione la possibilità di scegliere solo determinate righe di un record del database. Il comando COUNT combinato con il SELECT ci permette di creare la query perfetta per le nostre esigenze:
SELECT COUNT(1) FROM student;
Verrà stampata la prima riga della tabella student. Per rendere la query ancora più potente possiamo combinare altri comandi, ad esempio ottenendo la somma di una colonna numerica.
SELECT SUM(age) FROM student;
Il risultato di questa query SQL sarà la somma di tutti i valori della colonna age.
- Cambiare i dati nei record di una tabella: aggiornare le tabelle è una delle operazioni più frequenti quando si gestiscono i dati. Il comando UPDATE nel linguaggio SQL permette di accedere ai singoli valori dei record. UPDATE student SET age = 30 WHERE name = ‘Kevin’;
Molto semplicemente questa query andrà a modificare l’attributo age dello studente di nome Kevin all’interno della tabella student.
- Usare più di una condizione nel WHERE per ottenere un record: immaginiamo di introdurre nella tabella student due nuove righe. Due nuovi studenti con ID 2 e 3, ma con lo stesso nome, ‘Jack’ ed età rispettivamente di 22 e 26 anni. Se utilizzo la colonna name come condizione del WHERE, il linguaggio SQL mi restituirà entrambi i record ‘Jack’. Per ottenere un record univoco devo combinare altre condizioni con un operatore logico AND o OR. Vediamo un esempio nel linguaggio SQL.
SELECT * FROM student WHERE name = ‘Jack’ AND age = 22.
- Cancellare un record o all’interno di una tabella: ovviamente il linguaggio SQL mette a disposizione il comando DELETE. Quest’ultimo a seconda della condizione che andremo a specificare cancellerà gli elementi dalla tabella.
DELETE FROM student; (cancella tutte le righe della tabella)
DELETE FROM student WHERE age = 26
- Trovare un valore nullo in una tabella: questa query è molto utile all’interno di grandi db e tabelle ricche di valori. L’operatore IS NULL permette di differenziare le celle vuote in una tabella.
SELECT name, age FROM student WHERE age IS NULL;
Questa query mostra tutte le righe della tabella dove la colonna age è vuota.
- Aggiungere o cancellare una colonna in una tabella: è possibile creare nuove colonne in una tabella esistente. Utilizzando il comando ALTER TABLE combinato con la parola chiave ADD.
ALTER TABLE student ADD email VARCHAR;
La query in questione inserirà una nuova colonna nella tabella esistente di attributo email. La parola chiave VARCHAR indica che quel campo potrà contenere valori (stringhe) formate da lettere, numeri e caratteri speciali.
- Valutare la performance di una query: si tratta di una query avanzata nel linguaggio SQL. Se l’accesso ad un valore o un comando specifico è molto lento nella sua esecuzione, SQL ci permette di verificare la qualità dell’interrogazione che abbiamo scritto.
EXPLAIN QUERY PLAN SELECT * FROM student;
Questa interrogazione fornisce il costo della query di tutte le operazioni.
EXPLAIN può essere utilizzato per interrompere i tempi delle diverse parti della query prima di un'istruzione SQL.
Prendere dimestichezza con SQL nell’informatica è fondamentale. Si tratta di un linguaggio potente quanto basico. Fondamentale per capire come un database relazionale è strutturato e come accedere e manipolare i dati senza troppe difficoltà.
Il linguaggio SQL deve essere padroneggiato da chiunque voglia cimentarsi nello sviluppo software. In maniera ancora più approfondita se si punta a diventare sviluppatore web o data scientist.