Query avanzate
BETWEEN
L'operatore BETWEEN viene utilizzato in una clausola WHERE per filtrare il risultato impostato entro un certo intervallo. Esso accetta due valori che sono o numeri o testo o date.
SELECT *
FROM film
WHERE anno BETWEEN 1990 AND 1999;
Quando i valori sono testo, BETWEEN filtra il risultato impostato per l'intervallo alfabetico.
SELECT *
FROM film
WHERE titolo BETWEEN 'A' AND 'R';
AND
A volte vogliamo combinare più condizioni in una clausola WHERE per rendere il risultato stabilito più specifico e utile.
Un modo per farlo è quello di utilizzare l'operatore AND.
SELECT *
FROM film
WHERE anno BETWEEN 1990 AND 1999
AND genere = 'horror';
OR
Simile ad AND, l'operatore OR può essere utilizzato anche per combinare più condizioni in WHERE, ma c'è una differenza fondamentale:
- l'operatore AND visualizza una riga se tutte le condizioni sono vere.
- l'operatore OR visualizza una riga se una qualsiasi condizione è vera.
SELECT *
FROM film
WHERE anno > 2014
OR genere = 'azione';
ORDER BY
Possiamo ordinare i risultati utilizzando ORDER BY, sia in ordine alfabetico che numerico. L'ordinamento dei risultati spesso rende i dati più utili e più facili da analizzare.
SELECT *
FROM film
ORDER BY titolo;
A volte vogliamo ordinare le cose in ordine decrescente o crescente.
SELECT *
FROM prodotti
WHERE stelle > 4
ORDER BY vendite DESC;
DESC è una parola chiave per ordinare i risultati in ordine decrescente, ASC invece è usata per ordinare i risultati in ordine crescente.
LIMIT
La maggior parte delle tabelle SQL contiene centinaia di migliaia di record. In queste situazioni, diventa importante limitare il numero di righe nel risultato.
LIMIT è una clausola che permette di specificare il numero massimo di righe del risultato. In questo modo le query vengono eseguite più velocemente.
LIMIT va sempre alla fine della query. Inoltre non è supportato in tutti i database SQL.
SELECT *
FROM film
LIMIT 10;
CASE
Un'istruzione CASE permette di creare diversi output (di solito nell'istruzione SELECT). E' il modo in cui SQL gestisce la logica if-then.
SELECT nome,
CASE
WHEN stelle > 4 THEN 'Ottimo'
WHEN stelle > 3 THEN 'Appena sufficiente'
ELSE 'Non ci siamo!'
END
FROM prodotti;
Ogni WHEN prova una condizione e il seguente THEN ci dà la stringa se la condizione è vera.
L'ELSE ci dà la stringa se tutte le condizioni sono false.
La dichiarazione CASE deve terminare con END.