SQLite - Operatori

Ciao, futuri maghi dei database! Oggi ci immergeremo nel mondo magico degli operatori SQLite. Come il tuo amico insegnante di computer del quartiere, sono qui per guidarti in questo viaggio, anche se non hai mai scritto una riga di codice prima. Allora, afferra le tue bacchette virtuali (tastiere) e lanciamo qualche incantesimo SQLite!

SQLite - Operators

Cos'è un Operatore in SQLite?

Prima di tuffarci nel profondo, iniziamo con le basi. In SQLite (e nel programming in generale), un operatore è come un simbolo speciale o una parola chiave che dice al computer di eseguire operazioni o confronti specifici. Pensa agli operatori come i verbi nel linguaggio dei database - fanno accadere le cose!

Per esempio, quando vedi un segno "+" in SQLite, non è solo un carino piccolino croce. Sta dicendo al database, "Ehi, somma queste cose insieme!" Allo stesso modo, quando vedi "=", non è solo due linee che siaggirano - sta chiedendo, "Queste due cose sono uguali?"

Ora che abbiamo chiarito questo, esploriamo i diversi tipi di operatori in SQLite. Credimi, è più divertente di quanto sembri!

Operatori Aritmetici in SQLite

Gli operatori aritmetici in SQLite sono come le operazioni di base di matematica che hai imparato a scuola, ma ora lavorano la loro magia sui tuoi dati. Guardiamoli in azione:

Operatore Descrizione Esempio
+ Addizione SELECT 5 + 3; -- Restituisce 8
- Sottrazione SELECT 10 - 4; -- Restituisce 6
* Moltiplicazione SELECT 6 * 2; -- Restituisce 12
/ Divisione SELECT 15 / 3; -- Restituisce 5
% Modulo (resto) SELECT 17 % 5; -- Restituisce 2

Analizziamo questi con alcuni esempi reali:

-- Immaginiamo di avere una tabella chiamata 'products' con le colonne 'price' e 'quantity'
SELECT name, price * quantity AS total_value
FROM products;

In questo esempio, stiamo usando l'operatore di moltiplicazione (*) per calcolare il valore totale di ogni prodotto. SQLite moltiplicherà il prezzo per la quantità per ogni riga, dando noi il valore totale.

-- Calcolare il prezzo medio
SELECT AVG(price) AS average_price
FROM products;

-- Ora arrotondiamolo a 2 decimali
SELECT ROUND(AVG(price), 2) AS rounded_average_price
FROM products;

Qui, stiamo usando l'operatore di divisione dietro le quinte (la funzione AVG divide la somma per il conteggio), e poi arrotondiamo il risultato. È come chiedere a SQLite di fare i tuoi compiti di matematica!

Operatori di Confronto in SQLite

Gli operatori di confronto sono come gli amici giudicanti del mondo SQLite - sono sempre in confronto. Ecco una tabella di questi operatori schizzinosi:

Operatore Descrizione Esempio
= Uguale a SELECT * FROM products WHERE price = 10;
!= o <> Diverso da SELECT * FROM products WHERE category != 'Electronics';
< Minore di SELECT * FROM products WHERE price < 50;
> Maggiore di SELECT * FROM employees WHERE salary > 50000;
<= Minore o uguale a SELECT * FROM inventory WHERE quantity <= 5;
>= Maggiore o uguale a SELECT * FROM orders WHERE order_date >= '2023-01-01';

Vediamo questi in azione:

-- Trova tutti i prodotti che sono esauriti
SELECT name, quantity
FROM products
WHERE quantity = 0;

-- Trova tutti i dipendenti che non sono nel dipartimento IT
SELECT name, department
FROM employees
WHERE department <> 'IT';

-- Trova tutti gli ordini effettuati nell'ultima settimana
SELECT order_id, order_date
FROM orders
WHERE order_date >= DATE('now', '-7 days');

In questi esempi, stiamo usando operatori di confronto per filtrare i nostri dati. È come dire a SQLite, "Voglio vedere solo questa roba specifica, grazie mille!"

Operatori Logici in SQLite

Gli operatori logici sono i decisori di SQLite. Ci aiutano a combinare condizioni e fare query più complesse. Ecco i nostri amici logici:

Operatore Descrizione Esempio
AND Vero se tutte le condizioni sono vere SELECT * FROM products WHERE price > 100 AND category = 'Electronics';
OR Vero se qualsiasi condizione è vera SELECT * FROM customers WHERE country = 'USA' OR country = 'Canada';
NOT Negazione di una condizione SELECT * FROM employees WHERE NOT department = 'Sales';

Mettiamo questi al lavoro:

-- Trova tutti i prodotti costosi
SELECT name, price, category
FROM products
WHERE price > 500 AND category = 'Electronics';

-- Trova tutti i clienti del Nord America
SELECT name, country
FROM customers
WHERE country = 'USA' OR country = 'Canada' OR country = 'Mexico';

-- Trova tutti i dipendenti che non sono in Vendite o Marketing
SELECT name, department
FROM employees
WHERE NOT (department = 'Sales' OR department = 'Marketing');

In questi esempi, stiamo combinando condizioni per ottenere esattamente i dati che vogliamo. È come essere un detective, unendo indizi per risolvere un mistero!

Operatori Bitwise in SQLite

Ora entriamo nel regno della magia binaria con gli operatori bitwise. Questi operatori lavorano sulle rappresentazioni binarie dei numeri. Non vengono utilizzati così spesso nelle query quotidiane di SQLite, ma sono strumenti potenti per certe operazioni.

Operatore Descrizione Esempio
& AND Bitwise SELECT 5 & 3; -- Restituisce 1
| OR Bitwise SELECT 5 | 3; -- Restituisce 7
~ NOT Bitwise SELECT ~5; -- Restituisce -6
<< Spostamento a sinistra SELECT 5 << 1; -- Restituisce 10
>> Spostamento a destra SELECT 5 >> 1; -- Restituisce 2

Analizziamo un'operazione bitwise:

-- Usare AND Bitwise per controllare se un numero è dispari o pari
SELECT
number,
CASE
WHEN number & 1 = 1 THEN 'Dispari'
ELSE 'Pari'
END AS parity
FROM (
SELECT 1 AS number
UNION ALL SELECT 2
UNION ALL SELECT 3
UNION ALL SELECT 4
UNION ALL SELECT 5
);

In questo esempio, stiamo usando l'operatore AND Bitwise per controllare se un numero è dispari o pari. Se un numero AND 1 equals 1, è dispari; altrimenti, è pari. È come insegnare a SQLite a contare sulle sue dita!

Eccoci, gente! Abbiamo viaggiato attraverso il paese degli operatori SQLite, dalla terra familiare dell'aritmetica al regno esotico delle operazioni bitwise. Ricorda, la pratica fa la perfezione, quindi non aver paura di sperimentare con questi operatori nelle tue query. Prima di sapere, sarai scocciare questi poteri SQLite come un vero mago dei database!

Credits: Image by storyset