CodeGym /Corsi /SQL SELF /Filtraggio dei dati con gli operatori di confronto (=, &g...

Filtraggio dei dati con gli operatori di confronto (=, >, <, <>)

SQL SELF
Livello 2 , Lezione 1
Disponibile

Allora, ormai sappiamo già come si usa il comando SELECT. Beh, almeno abbiamo imparato a tirare fuori i dati dal database, scegliere le colonne che ci servono e scrivere query che iniziano a trasformare dati grezzi in info utili. È arrivato il momento di aggiungere qualche "filtro" alla nostra palette magica. Sì, oggi parliamo di filtraggio dei dati usando operatori di confronto come =, >, < e <>.

Quando lavori con tabelle grandi, probabilmente non vuoi vedere proprio tutti i dati (a meno che tu non voglia tuffarti nel caos). Per selezionare solo le righe che ti servono, in SQL si usa la parola chiave WHERE. Ti permette di impostare condizioni che ogni riga deve rispettare per finire nei risultati della query. E per queste condizioni si usano proprio gli operatori di confronto.

Sintassi del filtraggio con WHERE

SELECT colonna1, colonna2
FROM tabella
WHERE condizione;

Struttura semplice: aggiungiamo la parola WHERE dopo aver indicato la tabella con FROM e scriviamo la condizione specifica che le righe devono rispettare.

Per esempio, vediamo come estrarre dati dalla tabella students:

SELECT name, age
FROM students
WHERE age > 18;

Questa query seleziona solo quegli studenti (nome e età) che hanno più di 18 anni. Facile, no? Ora tuffiamoci nel mondo degli operatori di confronto.

Operatori di confronto principali

In SQL ci sono diversi operatori di confronto che ti aiutano a filtrare i dati come vuoi tu. In pratica li conosci già dalla matematica, ma serve chiarire un attimo come funzionano qui. Ecco la lista di quelli più usati:

  1. = — Uguale.
  2. <> — Diverso (alternativa: != in alcuni DBMS, ma meglio usare <> perché è lo standard SQL).
  3. > — Maggiore.
  4. < — Minore.
  5. >= — Maggiore o uguale.
  6. <= — Minore o uguale.

Tabella degli operatori di confronto

Operatore Significato Esempio Risultato
= Uguale age = 20 Restituisce le righe dove l'età è 20
<> Diverso age <> 20 Restituisce le righe dove l'età è diversa da 20
> Maggiore age > 18 Restituisce le righe dove l'età è maggiore di 18
< Minore age < 18 Restituisce le righe dove l'età è minore di 18
>= Maggiore o uguale age >= 18 Restituisce le righe dove l'età è 18 o più
<= Minore o uguale age <= 18 Restituisce le righe dove l'età è 18 o meno

Esempi di utilizzo degli operatori di confronto

Esempio 1: Estrazione degli studenti con più di 20 anni

Ecco la nostra tabella:

id name age
1 Alex Lin 22
2 Anna Song 19
3 Otto Art 21
SELECT name, age
FROM students
WHERE age > 20;

Qui impostiamo la condizione age > 20 per selezionare solo gli studenti che hanno più di 20 anni. Se nella tabella c'è uno studente di 19 anni, niente da fare, non lo vedrai nei risultati.

In questo caso otteniamo questo risultato:

name age
Alex Lin 22
Otto Art 21

La studentessa Anna Song non è stata selezionata perché ha solo 19 anni.

Esempio 2: Estrazione dei dipendenti con stipendio almeno 50 000

Ecco la nostra tabella employees:

first_name last_name salary
Julia Kim 48000
Marcus Lee 52000
Anya Patel 50000
Ethan Zhou 61000

Ecco la nostra query SQL:

SELECT first_name, last_name, salary
FROM employees
WHERE salary >= 50000;

Questa query restituisce tutti i dipendenti che hanno uno stipendio uguale a 50 000 o maggiore di questa cifra. Anche l'uguaglianza va bene!

first_name last_name salary
Marcus Lee 52000
Anya Patel 50000
Ethan Zhou 61000

Esempio 3: Estrazione dei prodotti con prezzo inferiore a 100

product_name price
USB Cable 85
Wireless Mouse 150
Notebook 60
Mechanical Pencil 45
SELECT product_name, price
FROM products
WHERE price < 100;

Se hai un negozio online, con questa query puoi selezionare tutti i prodotti che costano meno di 100 (tipo per una promo "Tutto a 99!").

product_name price
USB Cable 85
Notebook 60
Mechanical Pencil 45

Esempio 4: Escludere utenti con un certo id

SELECT id, username
FROM users
WHERE id <> 1;

Questa query seleziona tutti gli utenti tranne quello con id uguale a 1. L'operatore <> dice "dammi tutti quelli che non sono uguali a questo valore".

Tabella users:

id username
1 admin
2 elena.gray
3 tom.bishop
4 aria.noble

Risultato della query:

id username
2 elena.gray
3 tom.bishop
4 aria.noble

Errori tipici nel filtraggio con operatori di confronto

Quando inizi a scrivere query con filtri, gli errori sono all'ordine del giorno. Ecco un paio di casi comuni da ricordare:

Problema 1: Errore nel nome delle colonne

Se scrivi male il nome di una colonna nella query, PostgreSQL ti darà errore. Per esempio:

SELECT name, age
FROM students
WHERE ages > 18; -- Errore: la colonna "ages" non esiste

Controlla sempre i nomi esatti delle colonne prima di scrivere la query.

Problema 2: Uso sbagliato dell'operatore di confronto

A volte chi inizia può confondere gli operatori. Per esempio:

SELECT name, age
FROM students
WHERE age => 18; -- Errore: operatore non valido

La sintassi giusta è >=, non =>.

Problema 3: Filtrare per valori che non esistono

Se provi a filtrare le righe per un valore che non c'è nella tabella, la query va ma restituisce risultato vuoto. Per esempio:

SELECT name
FROM students
WHERE age = 999; -- Risultato: 0 righe

Non è un errore di sintassi, ma può confondere se ti aspetti di vedere dei dati.

Applicazione pratica

Il filtraggio dei dati con operatori di confronto si usa in un sacco di situazioni:

  • Analisi dati: tipo per selezionare tutti i clienti che hanno speso più di 10 000 rupie.
  • Report: selezionare i dipendenti con stipendio sopra la media.
  • Monitoraggio: tracciare gli utenti che non sono stati attivi nell'ultimo mese.

SQL ti permette di estrarre velocemente i dati che ti servono da tabelle enormi, e gli operatori di confronto sono il primo passo su questa strada.

Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION