Dal problema aziendale alla capacità tecnica

SQL non serve solo a leggere dati.

Scopri come un database relazionale può strutturare, controllare, modificare, automatizzare, proteggere e accelerare le informazioni di un’organizzazione.

Pratica disponibileSpiegazione disponibileLaboratorio in preparazione

Quattro concetti diversi

Linguaggio, dati e software non sono sinonimi.

Database

L’insieme organizzato dei dati e delle relative regole.

DBMS

Il software che memorizza, controlla ed esegue le operazioni.

Server

L’ambiente che esegue un servizio di database per i client.

SQL

Il linguaggio usato da più DBMS, con una base comune e dialetti.

PostgreSQL, MySQL e SQL Server sono DBMS. Usano SQL, ma tipi, funzioni, procedure, strumenti di amministrazione e alcune sintassi differiscono.

12 famiglie

Parti dal problema, poi scegli lo strumento.

Spiegazione disponibilePrincipiante

Modellare

Problema aziendale
Clienti, ordini e pagamenti sono mescolati o copiati più volte.
Spiegazione semplice
Tabelle, tipi, schemi, chiavi e relazioni danno posto e significato a ogni fatto.
Esempio
Un ordine conserva id_client invece di copiare nome e indirizzo del cliente.
Dialetto
SQL comune; tipi dettagliati per DBMS
Comprendi le relazioni →
Pratica disponibileDa principiante ad avanzato

Interrogare

Problema aziendale
Un team vuole una risposta riproducibile invece di un totale calcolato a mano.
Spiegazione semplice
SELECT, filtri, aggregazioni, join, funzioni finestra e CTE trasformano una domanda in un risultato.
Esempio
Calcolare il fatturato per città e classificare il risultato più alto.
Dialetto
Ampia base SQL comune
Prova nell’ambiente SQL →
Spiegazione disponibilePrincipiante / intermedio

Modificare

Problema aziendale
Un’applicazione deve registrare una vendita, correggere un indirizzo o eliminare una bozza.
Spiegazione semplice
INSERT aggiunge, UPDATE modifica e DELETE elimina; UPSERT o MERGE gestisce i conflitti secondo il sistema.
Esempio
Aggiornare il telefono del cliente identificato senza toccare altre righe.
Dialetto
INSERT/UPDATE/DELETE comuni; UPSERT/MERGE dipende dal dialetto
Vedi i corsi previsti →
Spiegazione disponibilePrincipiante / intermedio

Garantire l’integrità

Problema aziendale
Un prezzo negativo, un’e-mail duplicata o un ordine orfano entra nel database.
Spiegazione semplice
Tipi, NOT NULL, UNIQUE, CHECK, PRIMARY KEY e FOREIGN KEY rifiutano gli stati non validi nel punto giusto.
Esempio
CHECK (prix >= 0) rifiuta un prezzo negativo prima che lo scopra un report.
Dialetto
SQL comune con sfumature
Vedi il micro-corso previsto →
Laboratorio in preparazioneIntermedio

Gestire le transazioni

Problema aziendale
Un ordine viene creato ma il pagamento fallisce, lasciando dati incompleti.
Spiegazione semplice
Una transazione raggruppa le modifiche; COMMIT conferma, ROLLBACK annulla e SAVEPOINT permette un recupero parziale.
Esempio
Registrare insieme ordine e pagamento, oppure nessuno dei due.
Dialetto
Base SQL; isolamento e concorrenza dipendono dal DBMS
Segui la preparazione →
Spiegazione disponibileIntermedio

Creare viste

Problema aziendale
Tre report definiscono diversamente lo stesso fatturato mensile.
Spiegazione semplice
Una vista nomina una query riutilizzabile; una vista materializzata conserva un risultato da aggiornare.
Esempio
Esporre ventes_mensuelles a più strumenti senza copiare la query.
Dialetto
Viste ampiamente comuni; materializzazione secondo il sistema
Vedi il risultato atteso →
Laboratorio in preparazioneIntermedio / avanzato

Automatizzare con funzioni, procedure e trigger

Problema aziendale
Ogni modifica di prezzo deve lasciare una traccia, qualunque sia il processo chiamante.
Spiegazione semplice
Una funzione incapsula un calcolo, una procedura esegue un’operazione e un trigger reagisce a un evento di tabella.
Esempio
Dopo UPDATE del prezzo, salvare OLD.prix e NEW.prix in una tabella storica.
Dialetto
Molto dipendente dal DBMS; esempi futuri PostgreSQL
Vedi i prerequisiti del futuro laboratorio →
Spiegazione disponibileIntermedio

Ottimizzare con indici ed EXPLAIN

Problema aziendale
La ricerca di un account per e-mail rallenta con la crescita della tabella.
Spiegazione semplice
EXPLAIN mostra il piano scelto; un indice può accelerare la lettura aggiungendo costi di spazio e scrittura.
Esempio
Confrontare il piano prima e dopo un indice su lower(email).
Dialetto
Principi comuni; piani specifici del DBMS
Vedi il micro-corso previsto →
Spiegazione disponibileIntermedio

Proteggere con ruoli e permessi

Problema aziendale
Uno strumento di reporting deve leggere alcune viste senza modificare le tabelle.
Spiegazione semplice
Utenti, ruoli, GRANT, REVOKE e talvolta sicurezza a livello di riga applicano il privilegio minimo.
Esempio
Concedere SELECT su una vista al ruolo reporting e negare UPDATE sulla tabella sorgente.
Dialetto
SQL + amministrazione; RLS dipende dal DBMS
Vedi l’ambito previsto →
Spiegazione disponibileIntermedio / avanzato

Lavorare con JSON, testo o geografia

Problema aziendale
Alcuni dati sono semi-strutturati, testuali o spaziali.
Spiegazione semplice
JSON/JSONB, ricerca full-text, tipi geografici ed estensioni ampliano gli usi quando supportati.
Esempio
Conservare attributi variabili in JSONB indicizzando le chiavi più cercate.
Dialetto
Molto dipendente dal sistema e dalle estensioni
Leggi le guide pubblicate →
Spiegazione disponibileAvanzato

Amministrare, salvare e replicare

Problema aziendale
Il servizio deve poter essere ripristinato, monitorato e disponibile nonostante un guasto.
Spiegazione semplice
Backup, ripristino, replica, monitoraggio e alta disponibilità appartengono soprattutto all’amministrazione del DBMS e dell’infrastruttura.
Esempio
Provare un ripristino da dump invece di presumere che il backup funzioni.
Dialetto
Strumenti e procedure specifici del DBMS
Consulta le risorse →
Spiegazione disponibileDa principiante ad avanzato

Alimentare applicazioni e strumenti BI

Problema aziendale
Un’applicazione, un’API e Power BI devono usare definizioni coerenti.
Spiegazione semplice
SQL seleziona, controlla e prepara i dati; connettori, API e pipeline ETL/ELT li spostano o espongono.
Esempio
Preparare una vista alla granularità ordine per Power BI senza duplicare gli importi.
Dialetto
SQL in un’architettura più ampia
Vedi il risultato Power BI previsto →

Scegli lo strumento più semplice

Quando non usare un trigger?

Basta un vincolo

Per rifiutare un prezzo negativo, CHECK è più visibile e diretto di una logica attivata.

La logica diventerebbe nascosta

Un trigger viene eseguito senza apparire nella query chiamante. Può sorprendere e complicare il debug.

Il volume è elevato

Un’azione per riga può rallentare una modifica massiva. Il costo va misurato sul caso reale.

La ricorsione è possibile

Un trigger che modifica la stessa tabella può richiamarsi. Servono progettazione e protezioni esplicite.

Casi adatti: audit, storicizzazione e alcune automazioni strettamente legate a un evento sui dati, dopo il confronto con un vincolo o la logica applicativa.

Parti da zero?

Inizia da una situazione senza codice ed esegui la prima query in meno di 45 minuti.

Scopri perché esiste SQL