Prontuario SQL
Le istruzioni SQL principali per interrogare e modificare i dati, raggruppate per attività. La sintassi esatta varia leggermente tra i database (PostgreSQL, MySQL, SQLite, SQL Server), ma i fondamenti qui sotto sono quasi universali. Per riordinare una query disordinata, usa il formattatore SQL.
Aggiornato 2026-07-06
Interrogare (SELECT)
| Istruzione | Cosa fa |
|---|---|
| SELECT * FROM t | Restituire tutte le colonne e righe dalla tabella t |
| SELECT a, b FROM t | Restituire solo le colonne a e b |
| SELECT DISTINCT a FROM t | Restituire i valori univoci di a |
| ... WHERE a = 5 | Filtrare le righe in cui a è uguale a 5 |
| ... ORDER BY a DESC | Ordinare per a, decrescente |
| ... LIMIT 10 | Restituire al massimo 10 righe |
| ... OFFSET 20 | Saltare le prime 20 righe (paginazione) |
| SELECT COUNT(*) FROM t | Contare le righe |
| SELECT SUM(a), AVG(a) FROM t | Aggregato: totale e media di a |
| ... GROUP BY category | Raggruppare le righe per aggregare per categoria |
| ... HAVING COUNT(*) > 5 | Filtrare i gruppi (WHERE per gli aggregati) |
Filtrare (WHERE)
| Istruzione | Cosa fa |
|---|---|
| WHERE a IN (1, 2, 3) | Corrispondere a un valore qualsiasi in un elenco |
| WHERE a BETWEEN 1 AND 9 | Corrispondere a un intervallo (estremi inclusi) |
| WHERE name LIKE 'A%' | Corrispondenza di pattern: inizia con A (% = caratteri qualsiasi) |
| WHERE name LIKE '_at' | _ corrisponde a esattamente un carattere |
| WHERE a IS NULL | Corrispondere alle righe in cui a non ha valore |
| WHERE a > 5 AND b < 10 | Combinare condizioni con AND / OR |
Unire tabelle
| Istruzione | Cosa fa |
|---|---|
| INNER JOIN u ON t.id = u.tid | Righe con una corrispondenza in entrambe le tabelle |
| LEFT JOIN u ON t.id = u.tid | Tutte le righe della tabella di sinistra, con corrispondenza o meno |
| RIGHT JOIN u ON t.id = u.tid | Tutte le righe della tabella di destra |
| FULL JOIN u ON t.id = u.tid | Tutte le righe di entrambe le tabelle |
Modificare i dati
| Istruzione | Cosa fa |
|---|---|
| INSERT INTO t (a, b) VALUES (1, 2) | Aggiungere una nuova riga |
| UPDATE t SET a = 5 WHERE id = 1 | Modificare righe esistenti (attenzione al WHERE!) |
| DELETE FROM t WHERE id = 1 | Rimuovere righe (attenzione al WHERE!) |
Schema (tabelle e indici)
| Istruzione | Cosa fa |
|---|---|
| CREATE TABLE t (id INT, name TEXT) | Creare una nuova tabella |
| ALTER TABLE t ADD col TEXT | Aggiungere una colonna |
| DROP TABLE t | Eliminare una tabella e tutti i suoi dati |
| CREATE INDEX idx ON t (a) | Aggiungere un indice per velocizzare le ricerche su a |
Un'abitudine di sicurezza da mantenere: scrivi prima la clausola WHERE di un UPDATE o DELETE. Eseguirne uno senza WHERE modifica o elimina ogni riga della tabella.
Strumenti correlati