J'utilise MySQL version 5.1.49-1ubuntu8.1. Cela 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?
mysql
sqldatatypes
Ikostia
la source
la source
Comme établi dans d'autres commentaires, ce sont des synonymes de TINYINT (1).
* Alors, pourquoi se donnent-ils la peine de différencier booléen, booléen, tiny * int (1)?
Surtout la 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 de mettre en œuvre une gestion complète des types booléens, 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.
Communément mentionné dans cette comparaison: Après MySQL 5.0.3 - Bit: Utilise 8 octets et ne stocke que des données binaires.
la source
BOOL
etBOOLEAN
?Bit: Uses 8 bytes and stores only binary data.
informations sont incorrectes. Lorsque vous ajoutez une colonne de bits à votre table, elle occupera un octet entier dans chaque enregistrement, pas seulement un seul bit. Lorsque vous ajoutez une deuxième colonne de bits, elle sera stockée dans le même octet. La neuvième colonne de bits nécessitera un deuxième octet de stockage.Une chose que je viens de remarquer - avec une colonne définie comme BOOL dans MySql, Spring Roo génère correctement du code Java pour supprimer la valeur d'un booléen, donc la spécification de BOOL peut vraisemblablement ajouter de la valeur, même si ce n'est que dans la nature d'un indice sur le utilisation prévue de la colonne.
la source
consultez l'aperçu de la documentation MySQL sur les types numériques:
http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html
la source