Tipe MySQL columnTwo BIT(5) _4 adalah tipe data baru yang diperkenalkan di MySQL versi 5. 0. 3 yang dapat digunakan untuk menyimpan nilai biner
Tipe columnTwo BIT(5) _4 hanya dapat menampung satu dari dua nilai biner. columnTwo BIT(5) 6 atau columnTwo BIT(5) 7
Jenis dapat digunakan saat Anda membuat atau mengubah struktur tabel Anda sebagai berikut
CREATE TABLE bit_columns ( columnOne BIT, columnTwo BIT(5) ); _
Pernyataan di atas akan menghasilkan tabel MySQL yang memiliki dua kolom tipe data columnTwo BIT(5) 4
Anda dapat menentukan penyimpanan columnTwo BIT(5) 9 dari jenis columnTwo BIT(5) 4 dengan menambahkan angka di dalam tanda kurung sebagai berikut
columnTwo BIT(5)
Kolom columnTwo BIT(5) 4 dapat menyimpan antara columnTwo BIT(5) 7 hingga INSERT INTO bit_columns VALUES (b'1', b'1011'); 3 nilai bit, dengan nilai default columnTwo BIT(5) 7
Ini berarti contoh INSERT INTO bit_columns VALUES (b'1', b'1011'); _5 di atas hanya dapat menyimpan satu nilai biner sementara INSERT INTO bit_columns VALUES (b'1', b'1011'); 6 dapat menyimpan hingga 5 nilai biner
Untuk memasukkan nilai tipe columnTwo BIT(5) _4, Anda perlu menggunakan notasi literal biner dari INSERT INTO bit_columns VALUES (b'1', b'1011'); 8 seperti yang ditunjukkan di bawah ini
INSERT INTO bit_columns VALUES (b'1', b'1011');
Saat Anda mengambil nilai yang disimpan menggunakan pernyataan INSERT INTO bit_columns VALUES (b'1', b'1011'); _9, MySQL akan mengubah nilai biner menjadi nilai heksadesimal seperti yang ditunjukkan di bawah ini
SELECT * FROM bit_columns; -- +----------------------+----------------------+ -- | columnOne | columnTwo | -- +----------------------+----------------------+ -- | 0x01 | 0x0B | -- +----------------------+----------------------+
Untuk menampilkan nilai biner alih-alih nilai heksadesimal, Anda perlu mengonversi hasilnya menggunakan fungsi SELECT * FROM bit_columns; -- +----------------------+----------------------+ -- | columnOne | columnTwo | -- +----------------------+----------------------+ -- | 0x01 | 0x0B | -- +----------------------+----------------------+ 0
Berikut adalah contoh kueri menggunakan fungsi SELECT * FROM bit_columns; -- +----------------------+----------------------+ -- | columnOne | columnTwo | -- +----------------------+----------------------+ -- | 0x01 | 0x0B | -- +----------------------+----------------------+ 0
SELECT BIN(columnOne), BIN(columnTwo) FROM bit_columns;
Set hasil yang dikembalikan adalah sebagai berikut
+----------------+----------------+ | BIN(columnOne) | BIN(columnTwo) | +----------------+----------------+ | 1 | 1011 | +----------------+----------------+
Sebagai alternatif, Anda juga dapat mengonversi nilai biner menjadi padanan desimalnya menggunakan fungsi SELECT * FROM bit_columns; -- +----------------------+----------------------+ -- | columnOne | columnTwo | -- +----------------------+----------------------+ -- | 0x01 | 0x0B | -- +----------------------+----------------------+ 2 sebagai berikut
SELECT CONV(columnOne, 2, 10), CONV(columnTwo, 2, 10) FROM bit_columns;
Nilai biner adalah sistem bilangan berbasis 2, jadi Anda perlu mengubahnya menjadi sistem bilangan berbasis 10 dengan fungsi SELECT * FROM bit_columns; -- +----------------------+----------------------+ -- | columnOne | columnTwo | -- +----------------------+----------------------+ -- | 0x01 | 0x0B | -- +----------------------+----------------------+ 2
Sekarang nilai yang dikembalikan akan berupa angka desimal (basis-10).
+------------------------+------------------------+ | CONV(columnOne, 2, 10) | CONV(columnTwo, 2, 10) | +------------------------+------------------------+ | 1 | 11 | +------------------------+------------------------+
Dan begitulah tipe columnTwo BIT(5) _4 bekerja di MySQL
Menggunakan tipe BIT untuk menyimpan nilai boolean
Tipe MySQL columnTwo BIT(5) _4 juga dapat digunakan untuk menyimpan nilai boolean. Untuk melakukannya, Anda perlu membuat kolom yang menyimpan maksimal satu nilai biner
Mari buat tabel baru bernama SELECT * FROM bit_columns; -- +----------------------+----------------------+ -- | columnOne | columnTwo | -- +----------------------+----------------------+ -- | 0x01 | 0x0B | -- +----------------------+----------------------+ 6 yang menyimpan nama pengguna yang tidak dapat digunakan untuk aplikasi web sebagai berikut
CREATE TABLE banned ( username VARCHAR(20), is_banned BIT );
Sekarang masukkan beberapa data ke tabel dengan pernyataan berikut
INSERT INTO banned VALUES ('joe_black', b'0'), ('jane_ph', b'1');
Tabel SELECT * FROM bit_columns; -- +----------------------+----------------------+ -- | columnOne | columnTwo | -- +----------------------+----------------------+ -- | 0x01 | 0x0B | -- +----------------------+----------------------+ _6 sekarang akan memiliki data berikut
columnTwo BIT(5) 0
MySQL secara implisit mengonversi nilai biner menjadi padanan desimalnya saat Anda menggunakan kolom biner di klausa SELECT * FROM bit_columns; -- +----------------------+----------------------+ -- | columnOne | columnTwo | -- +----------------------+----------------------+ -- | 0x01 | 0x0B | -- +----------------------+----------------------+ 8
Lihatlah contoh kueri berikut
columnTwo BIT(5) _1
Terakhir, Anda dapat menggunakan fungsi SELECT * FROM bit_columns; -- +----------------------+----------------------+ -- | columnOne | columnTwo | -- +----------------------+----------------------+ -- | 0x01 | 0x0B | -- +----------------------+----------------------+ _9 untuk menampilkan nilai kolom SELECT BIN(columnOne), BIN(columnTwo) FROM bit_columns; 0 sebagai SELECT BIN(columnOne), BIN(columnTwo) FROM bit_columns; 1 atau SELECT BIN(columnOne), BIN(columnTwo) FROM bit_columns; 2 seperti ini
columnTwo BIT(5) _2
Permintaan di atas akan mengembalikan output berikut
columnTwo BIT(5) _3
Dan begitulah cara Anda menggunakan tipe columnTwo BIT(5) 4 untuk menyimpan nilai boolean
Harap diingat bahwa sampai MySQL versi 5. 0. 3, tipe columnTwo BIT(5) _4 hanyalah alias untuk tipe SELECT BIN(columnOne), BIN(columnTwo) FROM bit_columns; 5
Lebih baik menggunakan tipe SELECT BIN(columnOne), BIN(columnTwo) FROM bit_columns; _5 untuk menyimpan nilai boolean jika Anda memiliki masalah kompatibilitas mundur