Un linguaggio comune, molteplici implementazioni
Dire "uso SQL" è come dire "uso una lingua": descrive una lingua, non il software che memorizza il documento. PostgreSQL, MySQL e Microsoft SQL Server sono DBMS che includono SQL e aggiungono le proprie funzionalità.
Una base è il contenuto strutturato gestito dallo DBMS. Il server è il servizio a cui spesso si connettono applicazioni e strumenti. Su SQL.tn, PGlite esegue un PostgreSQL compilato per il browser: nessun server remoto riceve i dati degli esercizi fittizi.
La base SQL viaggia abbastanza bene
SELECT, WHERE, GROUP BY, HAVING, JOIN, INSERT, UPDATE, DELETE, chiavi e vincoli hanno idee comuni. Una semplice query può funzionare su più motori o richiedere solo un piccolo adattamento.
La portabilità diminuisce con date, testo, tipi, funzioni JSON, generazione di identificatori, UPSERT, procedure e amministrazione. Il motore deve essere specificato non appena un esempio va oltre la base.
SELECT ville, COUNT(*) AS clients
FROM clients
WHERE actif = TRUE
GROUP BY ville
ORDER BY clients DESC;PostgreSQL: estensibilità e rigore
PostgreSQL è un DBMS relazionale open source noto per la sua conformità, i tipi avanzati, le funzioni finestra, JSONB, la ricerca di testo, le estensioni e un potente linguaggio procedurale. PGlite prende gran parte di questo motore da WebAssembly.
Costrutti come INSERT ... ON CONFLICT, RETURNING, JSONB o funzioni PL/pgSQL sono caratteristici di PostgreSQL, anche se altri motori offrono soluzioni equivalenti con altra sintassi.
INSERT INTO stocks (id_produit, quantite)
VALUES (42, 8)
ON CONFLICT (id_produit)
DO UPDATE SET quantite = EXCLUDED.quantite
RETURNING id_produit, quantite;MySQL e SQL Server soddisfano le stesse famiglie di esigenze
MySQL è molto comune nelle applicazioni web e ha un proprio ecosistema, motori di archiviazione e sintassi. SQL Server è DBMS di Microsoft, fortemente integrato con i suoi strumenti e utilizza il dialetto T-SQL.
La limitazione delle righe illustra la differenza: PostgreSQL e MySQL utilizzano comunemente LIMIT, mentre SQL Server utilizza TOP o OFFSET/FETCH. L’obiettivo aziendale resta lo stesso, cambia la forma.
-- PostgreSQL e MySQL
SELECT produit, prix FROM produits
ORDER BY prix DESC
LIMIT 3;
-- SQL Server
SELECT TOP (3) produit, prix FROM produits
ORDER BY prix DESC;Quale motore dovresti imparare?
Per iniziare, impara i concetti e un dialetto coerente. PostgreSQL è una scelta solida e SQL.tn lo utilizza per il proprio simulatore. Se la tua azienda utilizza SQL Server o MySQL, prova le differenze nell'ambiente pertinente.
Il motore migliore dipende anche dal motore esistente, dalle competenze del team, dall'hosting, dai connettori, dai requisiti operativi e dal costo totale. Un tutorial da solo non è sufficiente per questa decisione architetturale.
Errori comuni
Specificare sempre il dialetto di un esempio avanzato e distinguere ciò che appartiene alla lingua da ciò che appartiene a DBMS o alla sua amministrazione.
- Presente PostgreSQL come lingua.
- Dire che una query complessa è universale senza testarla altrove.
- Copia una funzione SQL Server in PostgreSQL perché entrambi utilizzano SQL.
- Scegliere un motore esclusivamente da un elenco di caratteristiche senza considerare il funzionamento.
Esercizio di lettura
Trova una query che stai utilizzando. Classificare ciascun elemento: SQL comune, sintassi specifica del motore o operazione amministrativa. Ad esempio, SELECT è comune, ON CONFLICT è PostgreSQL e la configurazione della replica è una questione amministrativa.
La micro-formazione dedicata illustrerà in dettaglio questo metodo. Resta in preparazione: nessun acquisto viene proposto prima dei suoi esercizi convalidati.
Segui la preparazione di questa competenza.
Consulta il risultato previsto, i prerequisiti e lo stato reale del micro-corso.
