Qual è la differenza tra i tipi di dati delle colonne MySQL BOOL e BOOLEAN?


88

Sto usando MySQL versione 5.1.49-1ubuntu8.1. Mi consente di definire colonne di due diversi tipi di dati: BOOLe BOOLEAN. Quali sono le differenze tra i due tipi?

Risposte:


136

Sono entrambi sinonimi di TINYINT (1) .


11
Quello che dice Adam. Non esiste un tipo BOOLEANO effettivo in MySQL.
Mchl

25

Come stabilito in altri commenti, sono sinonimi di TINYINT (1).

* Allora, perché si preoccupano di distinguere tra bool, boolean, tiny * int (1)?

Per lo più semantica.

Bool e Boolean: l'impostazione predefinita di MySQL li converte nel tipo tinyint. Secondo un'istruzione MySQL rilasciata nel periodo in cui scrivo, "Intendiamo implementare la gestione completa dei tipi booleani, in conformità con lo standard SQL, in una futura versione di MySQL".

0 = FALSO 1 = VERO

TINYINT: occupa un byte; varia da -128 a +127; o, 0 - 256.


Solitamente visualizzato in questo confronto: Dopo MySQL 5.0.3 - Bit: utilizza 8 byte e memorizza solo dati binari.


2
Questo non risponde davvero alla domanda. Qual è la differenza tra BOOLe BOOLEAN?
nalply

7
I post precedenti avevano già stabilito che entrambi sono sinonimi di TINYINT (1). Idealmente, la domanda successiva sarebbe "Perché allora hanno differenziato i tipi di dati?"
Sesto prima del

3
@ Sixthfore le Bit: Uses 8 bytes and stores only binary data.informazioni sono errate. Quando aggiungi una colonna di bit alla tua tabella, occuperà un intero byte in ogni record, non solo un singolo bit. Quando aggiungi una seconda colonna di bit, verrà memorizzata nello stesso byte. La colonna del nono bit richiederà un secondo byte di archiviazione.
Kolyunya

4

Una cosa che ho appena notato: con una colonna definita come BOOL in MySql, Spring Roo genera correttamente codice Java per unmarshalling il valore in un booleano, quindi presumibilmente specificando BOOL può aggiungere un valore, anche se è solo nella natura di un suggerimento sul destinazione d'uso della colonna.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.