web-dev-qa-db-fra.com

Quelle est la différence entre les types de données de colonne MySQL BOOL et BOOLEAN?

J'utilise la version MySQL 5.1.49-1ubuntu8.1. Il me permet de définir des colonnes de deux types de données différents: BOOL et BOOLEAN. Quelles sont les différences entre les deux types?

82
ikostia

Ils sont tous deux synonymes de TINYINT (1).

129
Adam Prax

Comme établi dans d'autres commentaires, ce sont des synonymes de TINYINT (1).

* Alors, pourquoi se donnent-ils la peine de faire la différence entre bool, boolean, tiny * int (1)?

Surtout sémantique.

Bool et Boolean: MySQL par défaut les convertit en type tinyint. Selon une déclaration MySQL faite au moment de la rédaction de cet article, "Nous avons l'intention d'implémenter une gestion de type booléenne complète, conformément au SQL standard, dans une future version de MySQL."

0 = FAUX 1 = VRAI

TINYINT: occupe un octet; varie de -128 à +127; ou, 0 - 256.


Généralement mentionné dans cette comparaison: Après MySQL 5.0.3 - Bit: utilise 8 octets et stocke uniquement les données binaires.

24
Sixthfore

Une chose que je viens de remarquer - avec une colonne définie comme BOOL dans MySql, Spring Roo génère correctement Java code pour dé-marshaller la valeur à un booléen, donc sans doute spécifier BOOL peut ajouter de la valeur, même si c'est uniquement sous la forme d'un indice sur l'utilisation prévue de la colonne.

4
SimonY

consultez la vue d'ensemble des types de documents numériques MySQL:

http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html

2
gdp