CONTATTACI

Blog

Linguaggio SQL: cos’è e come utilizzarlo

 

Lo Structured Query Language, più conosciuto come linguaggio SQL, è il linguaggio di programmazione standard per la manipolazione di un Database relazionale. Un Database è una struttura dati che può essere più o meno complessa, in cui memorizzare diversi tipi di informazioni.

Il concetto di memorizzazione ha ricoperto un ruolo fondamentale nello sviluppo delle attuali tecnologie informatiche, supportando la nascita di software e hardware sempre più potenti che avevano bisogno di un seguire un approccio diverso per l’organizzazione dei dati. 

Dobbiamo all’informatico Edgar F. Codd, ricercatore dell’IBM, che negli anni ‘70 ha creato le basi dell’approccio relazionale, l’introduzione del concetto di tabella basata su uno schema rigido di regole. 

Ogni tabella è formata da delle righe, dette Record, in cui immagazzinare dati. 

Potete immaginarla come un foglio excel che organizza le informazioni in righe e colonne. 

Un esempio: dovete salvare dati relativi ai componenti di un’aula scolastica, ogni riga della tabella sarà uno studente, mentre ogni colonna rappresenterà un’ informazione relativa a quello studente; Potremo avere una colonna per il Nome, una per il Cognome e una per il Sesso. 

Cosa molto importante, servirà una colonna per identificare univocamente un singolo studente, in modo da prevenire casi di omonimia. 

Per risolvere questo problema è norma comune creare un campo contenente un valore univoco ID.

Un esempio di tabella può essere il seguente: 

ID

Nome

Cognome

Sesso

1

Giuseppe

Rossi

M

2

Luisa 

Rossi

F

3

Giovanni

Rossi

M

 

I dati nelle diverse tabelle sono in relazione attraverso valori collegati tra di loro che permettono di incrociare diversi record in diverse tabelle; inoltre per facilitare la gestione di una sempre più crescente mole di dati, sono nati potenti software denominati DBMS – Database Management System (esempi che sicuramente conosci sono Oracle, MySQL, SQLite e molti altri.)

Tutti questi software comunicano con un solo linguaggio, o con un suo dialetto, questo linguaggio è proprio SQL.

Linguaggio SQL

Ma SQL cos è? In definitiva, il linguaggio SQL è un linguaggio che si avvicina moltissimo a quello umano, per questo motivo risulta di facile comprensione anche per chi è alle prime armi. 

Viene utilizzato per effettuare delle interrogazioni o query al database, con lo scopo di recuperare dati, anche tra più tabelle, sfruttando le relazioni logiche e soprattutto l’operatore JOIN.

Esistono diversi tipi di operazioni che possono esser fatte con il linguaggio SQL, le più comuni consentono di:

  • Creare un Database e una Tabella del database
  • Inserire dati 
  • Aggiornare dati 
  • Cancellare dati 
  • Estrarre e leggere specifici set di dati 

Queste operazioni rientrano nella categoria comunemente conosciuta come CRUD (acronimo di Create, Read, Update e Delete), parola che ha assunto un significato di carattere generale per indicare tutto ciò che è possibile fare con un set di dati. 

Ognuna di queste operazioni è collegata ad un comando SQL:

  • SELECT: permette di estrarre dati
  • UPDATE: permette di aggiornare i dati
  • DELETE: permette di cancellare dati
  • CREATE DATABASE: permette di creare database 
  • CREATE TABLE: permette di creare tabelle
  • INSERT INTO: permette di inserire nuovi dati in un database

Altri comandi utili sono 

  • CREATE INDEX: crea un indice, utile per velocizzare le query
  • DROP INDEX: cancella uno specifico indice
  • ALTER DATABASE: permette di modificare un database
  • ALTER TABLE: permette di modificare una tabella

Cosa molto importante: ogni query SQL deve finire con un punto e virgola! Inoltre SQL è case-insensitive nei confronti dei suoi comandi, ciò vuol dire che scrivere SELECT o select porta allo stesso risultato. Tuttavia è case-sensitive quando si scrivono i nomi delle tabelle o dei campi di riferimento.

Sintassi della Select

SELECT * FROM students;

il simbolo * indica “tutto”, questa select recupererà tutti i record della tabella students.

Esempi di query SQL

Partendo dalla creazione della tabella students, analizziamo alcune query SQL e la loro sintassi.

  • Creazione tabella

CREATE TABLE students (
 id INTEGER,
 nome TEXT,
 cognome TEXT,
 sesso TEXT
);

N.B: La creazione di questa tabella deve essere fatta all’interno di un database precedentemente creato.

Procediamo con l’inserimento di qualche dato.

  • Inserimento Dati

INSERT INTO students (id, nome, cognome, sesso)
VALUES (1, 'Giuseppe', 'Rossi', 'M');
  • Lettura Dati

Select * from students;

Questa query estrarrà indistintamente tutti i dati dalla tabella students. Se invece volessimo leggere solo un loro subset, ad esempio solo il nome degli studenti, bisognerebbe indicare il campo desiderato, sostituendolo all’asterisco in questo modo:

Select nome from students;
  • Modifica Tabella

Se in corso d’opera ti rendi conto che necessiti di tener traccia di un altro dato relativo agli studenti, per esempio la loro età, dovrai aggiungere una nuova colonna alla tabella students, per far ciò useremo il comando ALTER TABLE:

ALTER TABLE students
ADD COLUMN età INTEGER;

Ora che abbiamo una nuova colonna dovremo valorizzare il valore età per i dati già inseriti, per far questo ci avvarremo del comando UPDATE:

UPDATE students
SET età = 18
WHERE id = 1;

Da notare l’utilizzo del WHERE, uno degli strumenti più potenti SQL. Viene usato per filtrare i record in base ad un criterio, in questo caso usiamo l’identificativo univoco ID, per esser certi di riferirci allo studente da noi cercato.

Un altro esempio di utilizzo del WHERE: immaginiamo di recuperare tutti gli studenti che si chiamano ‘Giuseppe’

SELECT * FROM students WHERE nome = "Giuseppe";

Attenzione al case-sensitive. Come già detto, nelle query bisogna fare attenzione al case-sensitive dei campi inseriti, ad esempio se al posto di ‘Giuseppe’ avessimo scritto ‘giuseppe’, con l’iniziale minuscola, la query avrebbe avuto un risultato diverso. SQL è case-insensitive solo per quanto riguarda i suoi comandi proprietari!

Un altro elemento inderogabile nella conoscenza del linguaggio SQL sono i vincoli.

Vincoli

I vincoli servono per garantire l’integrità delle informazioni presenti in un database (data integritye perciò la sua affidabilità.

Per garantire ciò, esistono diversi vincoli di integrità, ossia delle regole che impongono i valori che possono essere inseriti; è possibile applicare queste regole su singole colonne o anche su più tabelle.

Esistono 3 tipi di vincoli da tenere a mente:

  • Vincoli di integrità delle colonne: specificano i valori che possono assumere le singole colonne. 

Esempio: DEFAULT | CHECK | NOT NULL

  • Vincoli di integrità sulle tabelle: specificano delle restrizioni da applicare su tutte le righe di una tabelle.

Esempio: PRIMARY KEY | UNIQUE | CHECK

  • Vincoli di integrità referenziale: impongono restrizioni sui valori che una colonna, in relazione ad un’altra colonna, può assumere.

Esempio: FOREIGN KEY | REFERENCES

Nella fase di realizzazione del database, sarà compito del programmatore informatico implementare sui dati previsti i diversi vincoli che il linguaggio SQL mette a disposizione. 

Rifacendoci all’esempio precedente della creazione della tabella students, proviamo a ricrearla, questa volta definendo dei vincoli.

CREATE TABLE students (
id INTEGER PRIMARY KEY,
nome TEXT NOT NULL,
cognome TEXT NOT NULL,
sesso TEXT,

 età INTEGER DEFAULT 16,

 CHECK (età >= 16) 

);

In questo esempio la PRIMARY KEY dice alla tabella che quel campo serve ad identificare univocamente una riga, garantendo che non potranno esserci ID con lo stesso valore. Il vincolo NOT NULL garantisce che, nel momento di inserimento dati, quei campi dovranno essere obbligatoriamente valorizzati. Il vincolo DEFAULT garantisce che quel campo abbia comunque un valore nel caso in cui non fosse specificato durante la INSERT. Infine, abbiamo il vincolo CHECK che inserisce un limite di range al valore che il campo età potrà assumere. Il fallimento di uno di questi vincoli bloccherà il processo di esecuzione delle query.

Ci sono altre parole chiave che SQL possiede e che tutti coloro che si accingono a diventare web developer dovrebbero conoscere.

AS: consente di creare un alias per una colonna o una tabella.

SELECT età AS yearsOld
FROM students;

DISTINCT: consente di filtrare i duplicati da una colonna e ritornare solo valori univoci.

SELECT DISTINCT nome
FROM students;

LIKE: usato nelle WHERE per confrontare valori che rispettano un determinato pattern. Nell’esempio successivo:

SELECT *
FROM students
WHERE nome LIKE 'G%';

IS NULL e IS NOT NULL: usato nella WHERE per filtrare quei record che hanno un valore assegnato o non assegnato al campo indicato dopo la where:

SELECT *
FROM students
WHERE sesso IS NULL;

AND e OR: usato nella WHERE per aggiungere più criteri di valutazione nella condizione di filtro:

SELECT *
FROM students
WHERE nome LIKE 'G%'
AND età > 16;

Esistono altre parole chiave del linguaggio SQL come ORDER BY, LIMIT, BETWEEN ecc.. ragione per cui ti consigliamo di approfondire sfruttando le decine di risorse online gratuite e facilmente accessibili. Uno dei siti che assolutamente consigliamo a tal scopo è w3schools, dove potrai trovare un elenco esaustivo di tutte le funzionalità SQL con allegato esempi e casi d’uso.

Conclusioni 

La conoscenza del linguaggio SQL resta una delle competenze più importanti in assoluto per tutti coloro che si accingono a lavorare con i dati, tra cui anche la categoria dello sviluppatore web, indipendentemente dal fatto che stiano pian piano prendendo piede le basi di dati basate sul NoSQL, cioè che non utilizzano SQL. 

Non dimentichiamoci di figure come il Data Scientist o il Data Engineer, sempre più richieste sul mercato nazionale e internazionale con prospettive di guadagno davvero sopra la media (un senior Data Engineer in italia arriva a guadagnare fino a 4.000€* netti al mese!). Vuoi saperne di più? Corri a leggere la nostra guida SQL in italiano

*Fonte: talent.it

Articoli correlati

Il linguaggio HTML (Hypertext Markup Language) è uno dei più conosciuti e diffusi: lo si trova infatti praticamente in tutte le pagine web esistenti. È una scelta popolare tra i principianti che si…
Essere uno sviluppatore web vuol dire imparare più linguaggi di programmazione per poter creare diversi tipi di applicazioni.  Per ogni applicazione, la maggior parte delle volte, …
Un buon programmatore, si sa, necessita di un ampio bagaglio di conoscenze per potersi districare tra le difficoltà che questo mestiere comporta. Oggi le richieste sul mercato sono molteplic…
Il mondo del web development è in continua evoluzione e, se da un lato può sembrare una corsa incessante, dall’altro rappresenta senz’altro un vortice di sfide e opportunità.  Come sviluppa…
Il mondo dello sviluppo backend è una parte cruciale di qualsiasi progetto web: definisce la logica che alimenta il lato “non visibile” di un sito o di un’applicazione. Si lega al frontend per mescol…
GitHub è da anni uno degli strumenti di condivisione del codice e versioning più utilizzati tra i web developers. Ad oggi, nel mondo del web development risulta essere uno strumento imprescindibile…

Seguici su Facebook

Vuoi entrare nel mondo della programmazione?

Scopri di più sui nostri corsi!

Chiamaci al numero verde

Contattaci su WhatsApp

Contattaci senza impegno per informazioni sul corso

Pagamento rateale

Valore della rata: A PARTIRE DA 115 €/mese.

Esempio di finanziamento 

Importo finanziato: € 2440 in 24 rate da € 115 – TAN fisso 9,55% TAEG 12,57% – importo totale del credito € 2841.

Il costo totale del credito comprende: interessi calcolati al TAN indicato, oneri fiscali (imposta di bollo sul contratto 16,00 euro*) addebitati sulla prima rata, costo mensile di gestione pratica € 3,90, spesa di istruttoria € 0,00, spesa per invio rendicontazione periodica cartacea € 0,98 (o spesa per invio rendicontazione periodica cartacea € 0,00), imposta di bollo su rendicontazione periodica € 0,00. Modalità di rimborso obbligatoria: addebito diretto su c/c. La scadenza delle rate è determinata dal giorno della liquidazione del contratto; la data di scadenza delle rate è prevista il giorno 15 del mese. L’importo di ciascuna rata comprende una quota di capitale crescente e interessi decrescente secondo un piano di ammortamento “alla francese”. Offerta valida dal 01/01/2024 al 31/12/2024.

Messaggio pubblicitario con finalità promozionale. Per le informazioni precontrattuali richiedere sul punto vendita il documento “Informazioni europee di base sul credito ai consumatori” (SECCI) e copia del testo contrattuale. Salvo approvazione di Sella Personal Credit S.p.A. Aulab S.r.l. opera quale intermediario del credito NON in esclusiva.

*In fase di richiesta del finanziamento verrà proposta la facoltà di selezionare, in alternativa all’imposta di bollo sul contratto di 16,00 euro, l’imposta sostitutiva, pari allo 0,25% dell’importo finanziato.

Pagamento rateale

Valore della rata: A PARTIRE DA 187 €/mese.

Esempio di finanziamento  

Importo finanziato: € 3990 in 24 rate da € 187 – TAN fisso 9,55% TAEG 12,57% – importo totale del credito € 4572.88.

Il costo totale del credito comprende: interessi calcolati al TAN indicato, oneri fiscali (imposta di bollo sul contratto 16,00 euro*) addebitati sulla prima rata, costo mensile di gestione pratica € 3,90, spesa di istruttoria € 0,00, spesa per invio rendicontazione periodica cartacea € 0,98 (o spesa per invio rendicontazione periodica cartacea € 0,00), imposta di bollo su rendicontazione periodica € 0,00. Modalità di rimborso obbligatoria: addebito diretto su c/c. La scadenza delle rate è determinata dal giorno della liquidazione del contratto; la data di scadenza delle rate è prevista il giorno 15 del mese. L’importo di ciascuna rata comprende una quota di capitale crescente e interessi decrescente secondo un piano di ammortamento “alla francese”. Offerta valida dal 01/01/2024 al 31/12/2024.

Messaggio pubblicitario con finalità promozionale. Per le informazioni precontrattuali richiedere sul punto vendita il documento “Informazioni europee di base sul credito ai consumatori” (SECCI) e copia del testo contrattuale. Salvo approvazione di Sella Personal Credit S.p.A. Aulab S.r.l. opera quale intermediario del credito NON in esclusiva.

* In fase di richiesta del finanziamento verrà proposta la facoltà di selezionare, in alternativa all’imposta di bollo sul contratto di 16,00 euro, l’imposta sostitutiva, pari allo 0,25% dell’importo finanziato.

Contattaci senza impegno per informazioni sul corso

Scopriamo insieme se i nostri corsi fanno per te. Compila il form e aspetta la chiamata di uno dei nostri consulenti.