In MySQL, il tipo di dato booleano non esiste in modo nativo, ma viene gestito attraverso alias e conversioni. Questo articolo illustra come lavorare con valori booleani nel database.
Uso di TINYINT(1) come Booleano
In MySQL, il tipo BOOLEAN è semplicemente un alias di TINYINT(1). Ciò significa che MySQL memorizza i valori booleani come numeri interi, tipicamente 0 per FALSE e 1 per TRUE.
CREATE TABLE utenti (
id INT PRIMARY KEY AUTO_INCREMENT,
nome VARCHAR(50),
attivo BOOLEAN -- Alias di TINYINT(1)
);
Nonostante MySQL permetta di dichiarare il tipo come BOOLEAN, internamente il valore viene trattato come un numero intero.
Inserimento e Recupero di Valori Booleani
Durante l'inserimento dei dati, è possibile specificare direttamente TRUE o FALSE, che MySQL convertirà automaticamente in 1 o 0.
INSERT INTO utenti (nome, attivo) VALUES ('Mario Rossi', TRUE);
INSERT INTO utenti (nome, attivo) VALUES ('Luigi Bianchi', FALSE);
Per recuperare i dati booleani:
SELECT nome, attivo FROM utenti;
Considerazioni sulle Query Boolean
Quando si lavora con condizioni booleane nelle query, è possibile utilizzare direttamente TRUE e FALSE:
SELECT * FROM utenti WHERE attivo = TRUE;
Oppure, utilizzando la rappresentazione numerica:
SELECT * FROM utenti WHERE attivo = 1;
Conversione Esplicita
Se necessario, è possibile convertire esplicitamente i valori booleani in numeri interi:
SELECT nome, attivo+0 AS attivo_numerico FROM utenti;
Questo aiuta a garantire la compatibilità con applicazioni esterne che potrebbero non interpretare direttamente i booleani.
Conclusione
Anche se MySQL non fornisce un vero tipo booleano, la gestione tramite TINYINT(1) e alias come BOOLEAN è sufficiente per la maggior parte delle esigenze. Comprendere il funzionamento interno aiuta a scrivere query più efficienti e a evitare errori nell'elaborazione dei dati.