SQLite - AND & OR Clauses
Ciao, appassionati di database in erba! Oggi esploreremo il mondo di SQLite e conosceremo due potenti operatori che vi aiuteranno a creare query di database più complesse e precise: le clausole AND e OR. Come il vostro amico insegnante di informatica del quartiere, sono entusiasta di guidarvi in questo viaggio. Allora, prendete i vostri taccuini virtuali e cominciamo!
L'Operatore AND
Immaginate di organizzare una vasta biblioteca di libri. Vuoi trovare tutti i libri scritti da J.K. Rowling AND pubblicati dopo il 2000. È qui che l'operatore AND diventa utile!
Cos'è l'Operatore AND?
L'operatore AND permette di combinare più condizioni nella vostra query SQL. Perché una riga sia inclusa nel set di risultati, TUTTE le condizioni collegate da AND devono essere vere.
Sintassi
SELECT colonna1, colonna2, ...
FROM nome_tabella
WHERE condizione1 AND condizione2 AND condizione3 ...;
Esempi
Creiamo una semplice tabella "libri" per lavorare:
CREATE TABLE libri (
id INTEGER PRIMARY KEY,
titolo TEXT,
autore TEXT,
anno_pubblicazione INTEGER,
genere TEXT
);
INSERT INTO libri (titolo, autore, anno_pubblicazione, genere)
VALUES
('Harry Potter e la Coppa del Mondo', 'J.K. Rowling', 2000, 'Fantasy'),
('Il Codice Da Vinci', 'Dan Brown', 2003, 'Thriller'),
('Per uccidere un sorriso', 'Harper Lee', 1960, 'Classico'),
('1984', 'George Orwell', 1949, 'Distopico'),
('Hunger Games', 'Suzanne Collins', 2008, 'Young Adult');
Ora, utilizziamo l'operatore AND per trovare tutti i libri fantasy pubblicati dopo il 2000:
SELECT titolo, autore, anno_pubblicazione
FROM libri
WHERE genere = 'Fantasy' AND anno_pubblicazione > 2000;
Questa query restituirà:
titolo | autore | anno_pubblicazione
------------------------------------------------------------
Harry Potter e la Coppa del Mondo | J.K. Rowling | 2000
Spiegazione: Questa query seleziona solo i libri che soddisfano entrambe le condizioni: il genere è 'Fantasy' AND l'anno di pubblicazione è maggiore di 2000.
Proviamo un altro esempio. Troveremo tutti i libri scritti da J.K. Rowling e pubblicati nel 2000:
SELECT titolo, autore, anno_pubblicazione
FROM libri
WHERE autore = 'J.K. Rowling' AND anno_pubblicazione = 2000;
Questa query restituirà lo stesso risultato di prima perché è l'unico libro nella nostra tabella che soddisfa entrambe le condizioni.
Consiglio Pro
Puoi utilizzare quanti operatori AND ti servono in una singola query. Per esempio:
SELECT titolo, autore, anno_pubblicazione, genere
FROM libri
WHERE autore = 'J.K. Rowling' AND anno_pubblicazione = 2000 AND genere = 'Fantasy';
Questa query aggiunge una condizione in più al nostro esempio precedente.
L'Operatore OR
Ora, immagina di essere in mood per un libro fantasy O un thriller. È qui che l'operatore OR arriva in soccorso!
Cos'è l'Operatore OR?
L'operatore OR permette di combinare più condizioni nella vostra query SQL. Perché una riga sia inclusa nel set di risultati, ALMENO UNA delle condizioni collegate da OR deve essere vera.
Sintassi
SELECT colonna1, colonna2, ...
FROM nome_tabella
WHERE condizione1 OR condizione2 OR condizione3 ...;
Esempi
Utilizzando la nostra tabella "libri" dal prima, troviamo tutti i libri che sono sia del genere Fantasy O pubblicati dopo il 2005:
SELECT titolo, autore, anno_pubblicazione, genere
FROM libri
WHERE genere = 'Fantasy' OR anno_pubblicazione > 2005;
Questa query restituirà:
titolo | autore | anno_pubblicazione | genere
----------------------------------------------------------------------------------
Harry Potter e la Coppa del Mondo | J.K. Rowling | 2000 | Fantasy
Hunger Games | Suzanne Collins | 2008 | Young Adult
Spiegazione: Questa query seleziona i libri che soddisfano almeno una delle condizioni: il genere è 'Fantasy' O l'anno di pubblicazione è maggiore di 2005.
Proviamo un altro esempio. Troveremo tutti i libri scritti da J.K. Rowling O Dan Brown:
SELECT titolo, autore, anno_pubblicazione, genere
FROM libri
WHERE autore = 'J.K. Rowling' OR autore = 'Dan Brown';
Questa query restituirà:
titolo | autore | anno_pubblicazione | genere
----------------------------------------------------------------------------------
Harry Potter e la Coppa del Mondo | J.K. Rowling | 2000 | Fantasy
Il Codice Da Vinci | Dan Brown | 2003 | Thriller
Combinare AND e OR
Ecco dove le cose diventano veramente interessanti! Puoi combinare operatori AND e OR nella stessa query. Ma attenzione - l'ordine è importante!
Troviamo tutti i libri Fantasy O pubblicati dopo il 2005 che non sono del genere Young Adult:
SELECT titolo, autore, anno_pubblicazione, genere
FROM libri
WHERE (genere = 'Fantasy' OR anno_pubblicazione > 2005) AND genere != 'Young Adult';
Questa query restituirà:
titolo | autore | anno_pubblicazione | genere
----------------------------------------------------------------------------------
Harry Potter e la Coppa del Mondo | J.K. Rowling | 2000 | Fantasy
Spiegazione: Le parentesi sono cruciali qui. Enscono che la condizione OR sia valutata prima, e poi il risultato è combinato con la condizione AND.
Consiglio Pro
Quando combini AND e OR, usa sempre le parentesi per rendere chiare le tue intenzioni. Aiuta sia te che SQLite a comprendere la logica della tua query.
Sintesi
Ecco una tabella di riferimento rapida degli operatori AND e OR:
Operatore | Descrizione | Esempio |
---|---|---|
AND | Restituisce vero se tutte le condizioni sono vere | WHERE condizione1 AND condizione2 |
OR | Restituisce vero se almeno una delle condizioni è vera | WHERE condizione1 OR condizione2 |
Ricorda, l'operatore AND è come un bibliotecario severo che ti dà un libro solo se soddisfi TUTTI i criteri. L'operatore OR è più come un amico indulgente che è felice se soddisfi ALMENO UNA delle condizioni.
Pratica l'uso di questi operatori, e presto sarai in grado di creare query complesse come un pro! Buon divertimento con le query, futuri maghi del database!
Credits: Image by storyset