Bisakah saya 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

Bisakah saya menyimpan boolean di mysql?

Berikut ini adalah outputnya

Bisakah saya menyimpan boolean di mysql?

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

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 boolean di MySQL?

Anda dapat menggunakan tinyint(1) atau bool atau boolean . Semua adalah sinonim. Jika Anda menggunakan tipe data bool atau boolean, maka secara internal berubah menjadi tinyint(1). Di PHP, nilai 0 mewakili salah dan 1 mewakili benar.

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.

Bagaimana cara menyimpan nilai boolean di DB?

Cara yang disarankan untuk menyimpan boolean di Oracle SQL adalah menggunakan bidang NUMBER(1) . Ini dapat menyimpan 1 sebagai benar dan 0 sebagai salah. CREATE TABLE testbool ( sometext VARCHAR2(10), is_checked NUMBER(1) ); .