Apa perbedaan antara tipe data kolom MySQL BOOL dan BOOLEAN?


88

Saya menggunakan MySQL versi 5.1.49-1ubuntu8.1. Ini memungkinkan saya untuk menentukan kolom dari dua tipe data yang berbeda: BOOLdan BOOLEAN. Apa perbedaan antara kedua tipe tersebut?

Jawaban:


136

Keduanya adalah sinonim untuk TINYINT (1) .


11
Apa yang Adam katakan. Tidak ada tipe BOOLEAN sebenarnya di MySQL.
Mchl

25

Seperti yang ditetapkan di komentar lain, itu adalah sinonim untuk TINYINT (1).

* Jadi, mengapa mereka repot-repot membedakan antara bool, boolean, tiny * int (1)?

Kebanyakan semantik.

Bool dan Boolean: Default MySQL mengubahnya menjadi tipe tinyint. Sesuai pernyataan MySQL yang dibuat sekitar waktu penulisan ini, "Kami bermaksud untuk mengimplementasikan penanganan tipe boolean penuh, sesuai dengan SQL standar, dalam rilis MySQL mendatang."

0 = SALAH 1 = BENAR

TINYINT: Menempati satu byte; berkisar dari -128 hingga +127; atau, 0 - 256.


Biasanya dikemukakan dalam perbandingan ini: Setelah MySQL 5.0.3 - Bit: Menggunakan 8 byte dan hanya menyimpan data biner.


2
Ini tidak benar-benar menjawab pertanyaan itu. Apa perbedaan antara BOOLdan BOOLEAN?
nalply

7
Posting sebelumnya telah menetapkan bahwa keduanya identik dengan TINYINT (1). Idealnya, pertanyaan berikutnya adalah "Lalu, mengapa mereka membedakan antara tipe datanya?"
Keenam tanggal

3
@Sixthfore Bit: Uses 8 bytes and stores only binary data.adalah informasi yang salah. Ketika Anda menambahkan kolom bit ke tabel Anda, itu akan menempati seluruh byte di setiap record, bukan hanya satu bit. Ketika Anda menambahkan kolom bit kedua, itu akan disimpan dalam byte yang sama. Kolom bit kesembilan akan membutuhkan penyimpanan byte kedua.
Kolyunya

4

Satu hal yang baru saja saya perhatikan - dengan kolom yang didefinisikan sebagai BOOL di MySql, Spring Roo dengan benar menghasilkan kode Java untuk menghapus nilai ke Boolean, jadi mungkin menentukan BOOL dapat menambahkan beberapa nilai, meskipun itu hanya bersifat petunjuk tentang tujuan penggunaan kolom.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.