Saya menggunakan MySQL versi 5.1.49-1ubuntu8.1. Ini memungkinkan saya untuk menentukan kolom dari dua tipe data yang berbeda: BOOL
dan BOOLEAN
. Apa perbedaan antara kedua tipe tersebut?
Jawaban:
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.
BOOL
dan BOOLEAN
?
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.
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.
periksa ikhtisar dokumen MySQL tentang tipe numerik:
http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html