SQL - Clausola WHERE

Benvenuti, futuri maghi dei database! Oggi esploriamo una delle strumenti più potenti nel vostro arsenale SQL: la clausola WHERE. Come il vostro amico insegnante di scienze informatiche del quartiere, sono qui per guidarvi in questo viaggio emozionante. Allora, afferrate le vostre bacchette virtuali (tastiere) e lanciamo un po' di magia SQL!

SQL - Where Clause

La Clausola WHERE in SQL

Immaginate di essere in una巨大的图书馆 con milioni di libri. State cercando un libro specifico sui draghi. Passereste attraverso ogni singolo libro? Certo che no! Chiedereste alla bibliotecaria di aiutarvi a trovare libri sui draghi. In SQL, la clausola WHERE è la vostra bibliotecaria helpful.

La clausola WHERE ci permette di filtrare i dati in base a condizioni specifiche. È come dire al database: "Ehi, voglio vedere solo queste informazioni particolari che满足 questi criteri."

Ecco la sintassi di base:

SELECT colonna1, colonna2, ...
DA nome_tabella
WHERE condizione;

Non preoccupatevi se questo sembra un po' intimidatorio. Lo analizzeremo pezzo per pezzo, e presto sarete in grado di filtrare i dati come un professionista!

Clausola WHERE con la Dichiarazione SELECT

Iniziamo con un esempio semplice. Immaginate di avere una tabella chiamata students con le colonne id, name, e age. Vogliamo trovare tutti gli studenti che hanno 18 anni.

SELECT *
DA students
WHERE età = 18;

In questa query:

  • SELECT * significa che vogliamo vedere tutte le colonne.
  • DA students specifica la tabella che stiamo interrogando.
  • WHERE età = 18 è la nostra condizione. È come dire: "Mostrami solo le righe in cui l'età è esattamente 18."

Supponiamo che vogliamo vedere solo i nomi di questi studenti di 18 anni:

SELECT nome
DA students
WHERE età = 18;

Vedete come abbiamo cambiato * in nome? Ora vedremo solo i nomi, non tutte le colonne.

Clausola WHERE con la Dichiarazione UPDATE

La clausola WHERE non è solo per le dichiarazioni SELECT. È anche molto utile quando si aggiornano i dati. Supponiamo che vogliamo aggiornare l'età di tutti gli studenti chiamati "Alice" a 19.

AGGIORNA students
SET età = 19
WHERE nome = 'Alice';

Questa query cambierà l'età a 19, ma solo per gli studenti chiamati Alice. Senza la clausola WHERE, cambiaremmo l'età di tutti!

Clausola WHERE con l'Operatore IN

Cosa faremmo se volessimo trovare studenti che hanno 18, 19 o 20 anni? Potremmo usare più condizioni OR, ma c'è un modo più ordinato: l'operatore IN.

SELECT *
DA students
WHERE età IN (18, 19, 20);

Questa query restituirà tutti gli studenti il cui'età è 18, 19 o 20. È come dire: "L'età è in questa lista di valori? Se sì, includetelo!"

Clausola WHERE con l'Operatore NOT IN

Ora, cosa faremmo se volessimo trovare tutti gli studenti che non hanno 18, 19 o 20 anni? Facile! Aggiungiamo NOT prima di IN:

SELECT *
DA students
WHERE età NOT IN (18, 19, 20);

Questo ci darà tutti gli studenti il cui'età è diversa da 18, 19 o 20.

Clausola WHERE con l'Operatore LIKE

A volte dobbiamo cercare modelli nei dati testuali. È qui che entra in gioco l'operatore LIKE. Supponiamo che vogliamo trovare tutti gli studenti il cui nome inizia con 'A':

SELECT *
DA students
WHERE nome LIKE 'A%';

In questa query, '%' è un carattere jolly che corrisponde a qualsiasi sequenza di caratteri. Quindi 'A%' significa "iniziare con A, seguita da qualsiasi cosa."

Possiamo anche cercare nomi che finiscono con 'n':

SELECT *
DA students
WHERE nome LIKE '%n';

O nomi che contengono 'li' in qualsiasi parte:

SELECT *
DA students
WHERE nome LIKE '%li%';

Clausola WHERE con gli Operatori AND, OR

Spesso dobbiamo combinare più condizioni. È qui che entrano in gioco AND e OR.

Vogliamo trovare tutti gli studenti che hanno 18 anni e i cui nomi iniziano con 'A':

SELECT *
DA students
WHERE età = 18 AND nome LIKE 'A%';

O forse vogliamo studenti che hanno 18 anni O i cui nomi iniziano con 'A':

SELECT *
DA students
WHERE età = 18 OR nome LIKE 'A%';

Possiamo combinare questi operatori per creare condizioni complesse:

SELECT *
DA students
WHERE (età = 18 OR età = 19) AND (nome LIKE 'A%' OR nome LIKE 'B%');

Questa query troverà studenti che hanno 18 o 19 anni E i cui nomi iniziano con 'A' o 'B'.

Ecco una tabella che riassume gli operatori che abbiamo imparato:

Operatore Descrizione Esempio
= Uguale WHERE età = 18
<> o != Diverso WHERE età <> 18
> Maggiore di WHERE età > 18
< Minore di WHERE età < 18
>= Maggiore o uguale WHERE età >= 18
<= Minore o uguale WHERE età <= 18
IN Corrisponde a qualsiasi valore in una lista WHERE età IN (18, 19, 20)
NOT IN Non corrisponde a qualsiasi valore in una lista WHERE età NOT IN (18, 19, 20)
LIKE Corrispondenza del modello WHERE nome LIKE 'A%'
AND Entrambe le condizioni devono essere vere WHERE età = 18 AND nome LIKE 'A%'
OR Ognuna delle condizioni può essere vera WHERE età = 18 OR nome LIKE 'A%'

Eccoci, gente! Avete appena imparato i dettagli della clausola WHERE. Ricordate, la pratica rende perfetti. Provate a scrivere le vostre query, esperimentate con diverse condizioni, e presto sarete in grado di filtrare i dati come un amministratore di database esperto.

Buona caccia ai dati, e possa la vostra clausola WHERE sempre trovare ciò che cercate!

Credits: Image by storyset