MariaDB · Ogni query spiegata con il suo obiettivo
SELECT nome, email
FROM utenti;
SELECT *
FROM utenti;
SELECT nome, eta
FROM utenti
WHERE eta > 18
AND citta = 'Roma';
| Operatore | Obiettivo | Esempio |
|---|---|---|
= != < > | Confronto esatto / diverso | eta != 18 |
BETWEEN | Valori in un intervallo | eta BETWEEN 18 AND 30 |
IN (…) | Valori dentro una lista | citta IN ('Roma','Milano') |
LIKE | Cercare un pattern nel testo | nome LIKE 'M%' |
IS NULL | Trovare valori vuoti | email IS NULL |
LIKE 'M%' → inizia con M | LIKE '%o' → finisce con o | LIKE '%mi%' → contiene "mi"SELECT nome, prezzo
FROM prodotti
ORDER BY prezzo DESC
LIMIT 10;
SELECT nome, cognome
FROM utenti
ORDER BY cognome ASC, nome ASC;
SELECT nome AS nome_utente,
prezzo * 1.22 AS prezzo_ivato
FROM prodotti;
SELECT DISTINCT citta
FROM utenti;
SELECT
COUNT(*) AS totale_prodotti,
AVG(prezzo) AS prezzo_medio,
MIN(prezzo) AS prezzo_minimo,
MAX(prezzo) AS prezzo_massimo
FROM prodotti;
SELECT citta, COUNT(*) AS n_utenti
FROM utenti
GROUP BY citta;
SELECT citta, COUNT(*) AS n_utenti
FROM utenti
GROUP BY citta
HAVING COUNT(*) > 5;
SELECT u.nome, o.data_ordine
FROM utenti u
INNER JOIN ordini o ON u.id = o.utente_id;
| JOIN | Obiettivo |
|---|---|
INNER JOIN | Solo righe che esistono in entrambe le tabelle |
LEFT JOIN | Tutte le righe della tabella sinistra + match a destra |
RIGHT JOIN | Tutte le righe della tabella destra + match a sinistra |
SELECT nome
FROM utenti
WHERE id IN (
SELECT utente_id
FROM ordini
WHERE totale > 100
);
SELECT nome FROM clienti
UNION
SELECT nome FROM fornitori;
UNION rimuove i duplicati · usa UNION ALL se vuoi tenerliIl database legge la query in questo ordine:
FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT
Parti dal tuo obiettivo e rispondi a queste domande in ordine. Ogni risposta = un pezzo della query.
SELECT colonna1, colonna2, ...
FROM nome_tabella
WHERE condizioneGROUP BY colonna + eventuale HAVINGORDER BY colonna ASC/DESC + LIMIT n
SELECT nomeFROM clientiWHERE citta = 'Milano'ORDER BY nome ASCSELECT nome FROM clienti WHERE citta = 'Milano' ORDER BY nome ASC;
| 🎯 Obiettivo | ✅ Query Soluzione |
|---|---|
| SELECT Mostrami nome e email di tutti gli utenti | |
| SELECT Mostrami tutti i dati dei prodotti | |
| WHERE Trova tutti gli utenti con età maggiore di 25 anni | |
| WHERE Trova i prodotti con prezzo tra 10€ e 50€ | |
| WHERE Trova gli utenti il cui nome inizia con "Mar" | |
| WHERE Trova gli utenti senza email | |
| WHERE Trova i prodotti di categoria "Elettronica" O "Informatica" | |
| ORDER Mostra i 5 prodotti più cari | |
| AGG Quanti utenti ci sono in totale? | |
| AGG Qual è il prezzo medio dei prodotti? | |
| GROUP Quanti utenti ci sono per ogni città? | |
| GROUP Qual è il prezzo massimo per ogni categoria? | |
| HAVING Mostra solo le categorie con più di 3 prodotti | |
| JOIN Mostra nome utente e data ordine per ogni ordine | |
| JOIN Mostra TUTTI gli utenti anche se non hanno mai ordinato | |
| DISTINCT Quali sono le categorie diverse dei prodotti? | |
| AS Mostra il prezzo IVA inclusa (prezzo × 1.22) con nome "Prezzo Finale" | |
| SUB Trova gli utenti che hanno fatto almeno un ordine | |
| UNION Unisci i nomi di clienti e fornitori in un'unica lista | |
| WHERE Trova i prodotti il cui nome contiene "phone" | |