SQLite - Espressioni

Ciao a tutti, futuri maghi dei database! Oggi ci immergeremo nel mondo affascinante delle espressioni SQLite. Come il tuo insegnante di computer del vicinato, sono qui per guidarti in questo viaggio, passo dopo passo. Non preoccuparti se sei nuovo alla programmazione - inizieremo dalle basi e lavoreremo verso l'alto. Allora, prenditi la tua bevanda preferita, mettiti comodo e partiamo insieme per questa avventura SQLite!

SQLite - Expressions

Cos'è un'Espressione SQLite?

Prima di immergerci nei dettagli, capiremo cos'è un'espressione in SQLite. Pensa alle espressioni come ai mattoni delle tue query di database. Sono come gli ingredienti in una ricetta - li combini in diversi modi per creare risultati potenti e significativi.

In SQLite, le espressioni possono essere semplici come un singolo valore o complesse come una combinazione di più operazioni. Vengono utilizzate in varie parti delle dichiarazioni SQL, come le clausole SELECT, WHERE e ORDER BY.

Ora, esploriamo i tre principali tipi di espressioni in SQLite:

  1. Espressioni Booleane
  2. Espressioni Numeriche
  3. Espressioni Date

SQLite - Espressioni Booleane

Le espressioni booleane sono come le domande vere/falso di un quiz. Valutano a TRUE o FALSE. Queste espressioni sono molto utili quando vuoi filtrare i dati o prendere decisioni nelle tue query.

Operatori di Confronto di Base

Iniziamo con alcuni operatori di confronto di base:

Operatore Descrizione
= Uguale a
<> Diverso da
< Minore di
> Maggiore di
<= Minore o uguale a
>= Maggiore o uguale a

Ecco un esempio semplice:

SELECT name, age
FROM students
WHERE age > 18;

In questa query, age > 18 è la nostra espressione booleana. Controlla se l'età è maggiore di 18 e restituisce TRUE per tutti gli studenti che hanno più di 18 anni.

Operatori Logici

Ora, aggiungiamo un po' di pepe con gli operatori logici:

Operatore Descrizione
AND AND logico
OR OR logico
NOT NOT logico

Ecco un esempio che combina più condizioni:

SELECT name, age, grade
FROM students
WHERE age > 18 AND grade = 'A';

Questa query trova tutti gli studenti che hanno più di 18 anni E hanno un voto 'A'. È come dire, "Mostrami gli adulti studenti con voto A!"

Operatore BETWEEN

L'operatore BETWEEN è un modo sintetico per controllare se un valore è entro un intervallo:

SELECT name, score
FROM exam_results
WHERE score BETWEEN 80 AND 90;

Questa query trova tutti gli studenti che hanno ottenuto tra 80 e 90 nel loro esame. È equivalente a scrivere score >= 80 AND score <= 90.

SQLite - Espressioni Numeriche

Le espressioni numeriche in SQLite ti permettono di eseguire operazioni matematiche nelle tue query. È come avere una calcolatrice integrata nel tuo database!

Operatori Aritmetici

Ecco i principali operatori aritmetici:

Operatore Descrizione
+ Addizione
- Sottrazione
* Moltiplicazione
/ Divisione
% Modulo

Vediamo come funzionano:

SELECT name,
price,
quantity,
price * quantity AS total_cost
FROM orders;

In questa query, stiamo calcolando il costo totale moltiplicando il prezzo per la quantità. La parola chiave AS ci permette di dare un nome alla nostra colonna calcolata.

Funzioni Aggregative

SQLite fornisce anche funzioni aggregate che operano su un set di valori:

Funzione Descrizione
AVG() Calcola la media
SUM() Calcola la somma
COUNT() Conta il numero di righe
MAX() Trova il valore massimo
MIN() Trova il valore minimo

Ecco un esempio che utilizza le funzioni aggregate:

SELECT
AVG(price) AS average_price,
SUM(quantity) AS total_items,
COUNT(*) AS order_count,
MAX(price) AS highest_price,
MIN(price) AS lowest_price
FROM orders;

Questa query ci dà una panoramica della nostra tabella degli ordini, inclusi il prezzo medio, il numero totale di articoli venduti, il numero di ordini e i prezzi più alto e più basso.

SQLite - Espressioni Date

Lavorare con le date nei database può essere complicato, ma SQLite offre alcune funzioni utili per rendere le cose più semplici.

Funzioni Data e Ora

Ecco alcune funzioni comunemente utilizzate per la data e l'ora:

Funzione Descrizione
date() Restituisce la data corrente
time() Restituisce l'ora corrente
datetime() Restituisce la data e l'ora corrente
julianday() Restituisce il giorno giuliano per una data
strftime() Formatta una data secondo una stringa di formato

Vediamo come utilizzarle:

SELECT
date('now') AS current_date,
time('now') AS current_time,
datetime('now') AS current_datetime,
julianday('now') AS julian_day,
strftime('%Y-%m-%d %H:%M', 'now') AS formatted_datetime;

Questa query ci mostra vari modi di lavorare con la data e l'ora corrente.

Calcoli con Date

Possiamo anche eseguire calcoli con le date:

SELECT
name,
hire_date,
date(hire_date, '+1 year') AS first_anniversary,
julianday('now') - julianday(hire_date) AS days_employed
FROM employees;

In questa query, stiamo calcolando la prima anniversaria di assunzione di ogni dipendente e il numero di giorni lavorati.

E voilà, amici! Abbiamo percorso il territorio delle espressioni SQLite, dalla logica booleana alla manipolazione numerica fino al viaggio nel tempo (bene, più o meno). Ricorda, la pratica rende perfetti, quindi non aver paura di sperimentare con queste espressioni nelle tue query.

Prima di concludere, una piccola storia dalla mia esperienza di insegnamento: Ho avuto uno studente che aveva difficoltà con le espressioni booleane. Continuava a confondere AND e OR. Allora gli ho detto di pensare a AND come a un genitore rigoroso (entrambe le condizioni devono essere vere) e OR come a un genitore indulgente (una delle condizioni può essere vera). Non lo ha mai dimenticato!

Spero che questa guida ti sia stata utile e magari anche un po' divertente. Continua a esplorare, a fare query e, soprattutto, a imparare. Fino alla prossima volta, happy coding!

Credits: Image by storyset