Dapatkah Anda menyimpan boolean di mysql?

Untuk menangani Boolean di MySQL, Anda dapat menggunakan BOOL atau BOOLEAN atau TINYINT(1). Jika Anda menggunakan BOOL atau BOOLEAN, maka MySQL secara internal mengubahnya menjadi TINYINT(1)

Pada tipe data BOOL atau BOOLEAN, jika menggunakan true literal maka MySQL merepresentasikannya sebagai 1 dan false literal sebagai 0 seperti pada bahasa PHP/C/C++

Untuk membuktikan bahwa MySQL mengonversi BOOL atau BOOLEAN menjadi TINYINT(1), mari kita buat tabel dengan kolom BOOLEAN atau BOOL

Di sini, kami membuat tabel dengan kolom BOOLEAN. Permintaan untuk membuat tabel adalah sebagai berikut

mysql> create table BoolOrBooleanOrTinyintDemo    -> (    -> Id int NOT NULL AUTO_INCREMENT,    -> isvalidAddress BOOLEAN,    -> PRIMARY KEY(Id)    -> ); Query OK, 0 rows affected (0.74 sec)

Sekarang periksa DDL dari tabel di atas menggunakan perintah SHOW CREATE. Kuerinya adalah sebagai berikut

mysql> show create table BoolOrBooleanOrTinyintDemo\G_

Berikut ini adalah outputnya

*************************** 1. row *************************** Table: BoolOrBooleanOrTinyintDemo Create Table: CREATE TABLE `boolorbooleanortinyintdemo` (    `Id` int(11) NOT NULL AUTO_INCREMENT,    `isvalidAddress` tinyint(1) DEFAULT NULL,    PRIMARY KEY (`Id`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci 1 row in set (0.00 sec)

Perhatikan kolom isvalidAddress, tipe data BOOLEAN diubah menjadi tinyint(1) secara internal. Sekarang Anda dapat memeriksa literal yang benar akan diwakili oleh 1 dan literal yang salah dengan 0. Sisipkan beberapa catatan dalam tabel dengan nilai literal benar dan salah. Permintaan untuk memasukkan catatan adalah sebagai berikut

mysql> insert into BoolOrBooleanOrTinyintDemo(isvalidAddress) values(true); Query OK, 1 row affected (0.43 sec) mysql> insert into BoolOrBooleanOrTinyintDemo(isvalidAddress) values(false); Query OK, 1 row affected (0.17 sec) mysql> insert into BoolOrBooleanOrTinyintDemo(isvalidAddress) values(true); Query OK, 1 row affected (0.29 sec) mysql> insert into BoolOrBooleanOrTinyintDemo(isvalidAddress) values(false); Query OK, 1 row affected (0.12 sec) mysql> insert into BoolOrBooleanOrTinyintDemo(isvalidAddress) values(true); Query OK, 1 row affected (0.33 sec)

Tampilkan semua rekaman dari tabel menggunakan pernyataan pilih. Permintaan untuk menampilkan semua catatan adalah sebagai berikut

mysql> select *from BoolOrBooleanOrTinyintDemo;_

Berikut ini adalah outputnya

+----+----------------+ | Id | isvalidAddress | +----+----------------+ |  1 |              1 | |  2 | 0 | |  3 | 1 | |  4 | 0 | |  5 | 1 | +----+----------------+ 5 rows in set (0.00 sec)

Lihatlah output sampel di atas, true direpresentasikan sebagai 1 dan false direpresentasikan sebagai 0

Dalam PHP, jika Anda menggunakan true maka akan direpresentasikan sebagai 1 dan false akan direpresentasikan sebagai 0

Perhatikan kode PHP berikut. Di sini, saya telah mengatur variabel 'isValidAddress'. Nilainya adalah 1, artinya mengevaluasi kondisi if benar dan mengeksekusi pernyataan if saja. Periksa kode berikut

$isValidAddress = 1; if($isValidAddress) { echo 'true is represented as '; echo ($isValidAddress); } else { echo 'false is represented as '; echo ($isValidAddress); }_

Ini snapshot dari kode

Berikut ini adalah outputnya

Jika Anda mengubah variabel 'isValidAddress' menjadi nilai 0. Itu berarti mengevaluasi kondisi if false dan mengeksekusi tubuh pernyataan lain saja. Berikut ini adalah kodenya

Meskipun nilai boolean adalah tipe nilai paling umum yang dapat Anda temukan dalam bahasa pemrograman, MySQL sebenarnya tidak memiliki tipe data DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+ 0 yang disimpan sebagai DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+ 1 atau DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+ 2 secara internal

Sebagai gantinya, MySQL menggunakan tipe data DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+ _3 untuk setiap kolom dengan tipe data DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+ 4 atau DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+ 0

Perhatikan contoh pernyataan DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+ _6 berikut ini. Perhatikan bagaimana kolom DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+ _7 ditandai sebagai tipe DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+ 0

CREATE TABLE books ( id INT PRIMARY KEY AUTO_INCREMENT, title VARCHAR(150) NOT NULL, published BOOLEAN );

Saat Anda berhasil membuat tabel, Anda dapat memeriksa tipe data yang diimplementasikan untuk kolom menggunakan pernyataan DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+ 9

Perhatikan bagaimana kolom DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+ _7 memiliki DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+ 3 ketik hasil yang ditetapkan di bawah ini

DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+

Kata kunci DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+ _4 atau DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+ 0 sebenarnya adalah alias dari DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+ 3

Seperti bahasa pemrograman lainnya, MySQL menganggap angka SELECT true, false; -- +------+-------+ -- | true | false | -- +------+-------+ -- | 1 | 0 | -- +------+-------+ 5 sama dengan DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+ 2, sedangkan angka SELECT true, false; -- +------+-------+ -- | true | false | -- +------+-------+ -- | 1 | 0 | -- +------+-------+ 7 dianggap DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+ 1

Anda sebenarnya dapat menguji ini menggunakan pernyataan SELECT true, false; -- +------+-------+ -- | true | false | -- +------+-------+ -- | 1 | 0 | -- +------+-------+ _9 sebagai berikut

SELECT true, false; -- +------+-------+ -- | true | false | -- +------+-------+ -- | 1 | 0 | -- +------+-------+

Nilai DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+ 1 sebenarnya adalah angka selain SELECT true, false; -- +------+-------+ -- | true | false | -- +------+-------+ -- | 1 | 0 | -- +------+-------+ 5, tetapi disarankan untuk menggunakan angka SELECT true, false; -- +------+-------+ -- | true | false | -- +------+-------+ -- | 1 | 0 | -- +------+-------+ 7 agar penyimpanan nilai boolean menjadi sederhana dan konsisten

Anda dapat menguji ini di MySQL dengan menggunakan fungsi SELECT IF(7, 'true', 'false'), IF(-7, 'true', 'false'), IF(0, 'true', 'false'); 3

SELECT IF(7, 'true', 'false'), IF(-7, 'true', 'false'), IF(0, 'true', 'false');

Set hasil yang dikembalikan akan seperti yang ditunjukkan di bawah ini

+------------------------+-------------------------+------------------------+ | IF(7, 'true', 'false') | IF(-7, 'true', 'false') | IF(0, 'true', 'false') | +------------------------+-------------------------+------------------------+ | true | true | false | +------------------------+-------------------------+------------------------+

Seperti yang Anda lihat, bahkan angka negatif dianggap DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+ 1 oleh MySQL

Meskipun MySQL menggunakan DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+ 3 untuk kolom DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+ 0, Anda tidak perlu menyisipkan SELECT true, false; -- +------+-------+ -- | true | false | -- +------+-------+ -- | 1 | 0 | -- +------+-------+ 5 atau SELECT true, false; -- +------+-------+ -- | true | false | -- +------+-------+ -- | 1 | 0 | -- +------+-------+ 7 untuk kolom saat Anda mengeluarkan pernyataan SELECT IF(7, 'true', 'false'), IF(-7, 'true', 'false'), IF(0, 'true', 'false'); 9

MySQL akan secara otomatis mengonversi nilai DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+ 1 atau DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+ 2 menjadi nilai numerik yang sesuai

Kembali ke contoh tabel +------------------------+-------------------------+------------------------+ | IF(7, 'true', 'false') | IF(-7, 'true', 'false') | IF(0, 'true', 'false') | +------------------------+-------------------------+------------------------+ | true | true | false | +------------------------+-------------------------+------------------------+ _2, mari sisipkan dua buku dengan salah satunya tidak diterbitkan sebagai berikut

INSERT INTO books VALUE (NULL, "The Three Musketeers", true), (NULL, "The Sound of Storm", false);

Tabel +------------------------+-------------------------+------------------------+ | IF(7, 'true', 'false') | IF(-7, 'true', 'false') | IF(0, 'true', 'false') | +------------------------+-------------------------+------------------------+ | true | true | false | +------------------------+-------------------------+------------------------+ _2 sekarang akan memiliki data berikut

+----+----------------------+-----------+ | id | title | published | +----+----------------------+-----------+ | 1 | The Three Musketeers | 1 | | 2 | The Sound of Storm | 0 | +----+----------------------+-----------+

Anda juga dapat menanyakan tabel Anda menggunakan nilai DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+ _1 atau DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+ 2 sebagai berikut

SELECT * FROM BOOKS WHERE published IS NOT true; -- +----+--------------------+-----------+ -- | id | title | published | -- +----+--------------------+-----------+ -- | 2 | The Sound of Storm | 0 | -- +----+--------------------+-----------+ SELECT * FROM BOOKS WHERE published IS true; -- +----+----------------------+-----------+ -- | id | title | published | -- +----+----------------------+-----------+ -- | 1 | The Three Musketeers | 1 | -- +----+----------------------+-----------+

Tetapi masalah dengan menggunakan DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+ 3 untuk tipe DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+ 0 adalah bahwa output dari pernyataan SELECT true, false; -- +------+-------+ -- | true | false | -- +------+-------+ -- | 1 | 0 | -- +------+-------+ 9 akan menampilkan SELECT true, false; -- +------+-------+ -- | true | false | -- +------+-------+ -- | 1 | 0 | -- +------+-------+ 7 atau SELECT true, false; -- +------+-------+ -- | true | false | -- +------+-------+ -- | 1 | 0 | -- +------+-------+ 5 alih-alih DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+ 1 atau DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+ 2

Anda perlu menggunakan fungsi SELECT IF(7, 'true', 'false'), IF(-7, 'true', 'false'), IF(0, 'true', 'false'); 3 untuk mengonversi nilai angka menjadi ekuivalen boolean

SELECT id, title, IF(published, 'true', 'false') AS published FROM BOOKS;

Dengan kueri SQL di atas, kolom DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+ _7 akan memiliki nilai DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+ 1 atau DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+ 2 seperti yang ditunjukkan di bawah ini

+----+----------------------+-----------+ | id | title | published | +----+----------------------+-----------+ | 1 | The Three Musketeers | true | | 2 | The Sound of Storm | false | +----+----------------------+-----------+

Dan begitulah tipe DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+ _0 digunakan di MySQL

Selain tipe DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+ _3, administrator MySQL juga dapat menggunakan tipe INSERT INTO books VALUE (NULL, "The Three Musketeers", true), (NULL, "The Sound of Storm", false); 9 atau +----+----------------------+-----------+ | id | title | published | +----+----------------------+-----------+ | 1 | The Three Musketeers | 1 | | 2 | The Sound of Storm | 0 | +----+----------------------+-----------+ 0 untuk menyimpan nilai boolean

Anda dapat mempelajari lebih lanjut tentang mereka di sini

  • Jenis data MySQL INSERT INTO books VALUE (NULL, "The Three Musketeers", true), (NULL, "The Sound of Storm", false); _9 dijelaskan
  • Jenis data MySQL +----+----------------------+-----------+ | id | title | published | +----+----------------------+-----------+ | 1 | The Three Musketeers | 1 | | 2 | The Sound of Storm | 0 | +----+----------------------+-----------+ _0 dijelaskan

DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+ _3 adalah alias default untuk tipe DESCRIBE books; -- +-----------+--------------+ -- | Field | Type | -- +-----------+--------------+ -- | id | int | -- | title | varchar(150) | -- | published | tinyint(1) | -- +-----------+--------------+ 0 seperti yang didefinisikan oleh MySQL, tetapi Anda dapat menggunakan tipe lain jika Anda tahu apa yang Anda lakukan. 😉

Bagaimana cara memasukkan data boolean di MySQL?

MySQL tidak berisi tipe data Boolean atau Bool bawaan . Mereka menyediakan tipe data TINYINT, bukan tipe data Boolean atau Bool. MySQL menganggap nilai nol sebagai salah dan nilai bukan nol sebagai benar. Jika Anda ingin menggunakan literal Boolean, gunakan true atau false yang selalu bernilai 0 dan 1.

Bagaimana cara menggunakan boolean di MySQL?

Untuk menangani Boolean di MySQL, Anda dapat menggunakan BOOL atau BOOLEAN atau TINYINT(1) . Jika Anda menggunakan BOOL atau BOOLEAN, maka MySQL secara internal mengubahnya menjadi TINYINT(1). Pada tipe data BOOL atau BOOLEAN, jika menggunakan true literal maka MySQL merepresentasikannya sebagai 1 dan false literal sebagai 0 seperti pada bahasa PHP/C/C++.

Bisakah kita menyimpan boolean di SQL?

Dalam SQL Server, Tipe Data Boolean dapat dibuat dengan mempertahankan tipe data BIT . Meskipun merupakan tipe data numerik, ia hanya dapat menerima nilai 0 atau 1 atau NULL. Karenanya dengan mudah kita dapat menetapkan nilai FALSE ke 0 dan nilai TRUE ke 1.

Bisakah kita menyimpan boolean di database?

BOOLEAN dapat digunakan sebagai tipe data saat mendefinisikan kolom dalam tabel atau variabel dalam prosedur basis data . Dukungan untuk tipe data BOOLEAN membantu migrasi dari produk database lainnya. Kolom Boolean menerima sebagai masukan literal SQL SALAH dan BENAR.

Postingan terbaru

LIHAT SEMUA