Cara menggunakan mysql bit vs tinyint

Secara default, MySQL tidak menawarkan Tipe Data Boolean asli. Namun, ini memberi kita tipe data TINYINT, memungkinkan kita untuk menyimpan nilai Boolean—seperti nilai dengan tipe TINYINT.

Panduan ini akan fokus pada cara menggunakan tipe data MySQL TINYINT untuk menyimpan Nilai Boolean.

Penggunaan Dasar

MySQL mendefinisikan nilai 0 sebagai false dan nilai bukan nol sebagai true. Oleh karena itu, untuk menggunakan nilai literal Boolean, Anda menggunakan konstanta TRUE dan FALSE yang mengevaluasi nilai 0 dan 1.

Sebuah contoh:

select TRUE, FALSE;

Setelah Anda menjalankan kueri di atas, Anda akan mendapatkan output yang mirip dengan yang ditunjukkan di bawah ini:

mysql> select TRUE, FALSE;

+------+-------+

| TRUE | FALSE |

+------+-------+

|    1 |     0 |

+------+-------+

1 row in set (0.00 sec)

Dari penjelasan di atas, kita dapat menyimpulkan bahwa MySQL menganggap 1 dan 0 sebagai True dan False, masing-masing.

Baik untuk dicatat bahwa sebagai Huruf Besar atau Huruf Kecil, MySQL menetapkan Benar dan Salah 0 dan 1 seperti yang ditunjukkan pada kueri di bawah ini:

select TRUE, FALSE, true, false, True, False;

Outputnya seperti yang ditunjukkan di bawah ini:

+------+-------+------+-------+------+-------+

| TRUE | FALSE | true | false | True | False |

+------+-------+------+-------+------+-------+

|    1 |     0 |    1 |     0 |    1 |     0 |

+------+-------+------+-------+------+-------+

1 row in set (0.00 sec)

Contoh Kasus Penggunaan

Mari kita gunakan sebuah contoh untuk mengilustrasikan bagaimana kita dapat menggunakan Tipe Boolean di MySQL.

Mulailah dengan membuat database dan tabel yang disebut bahasa, yang akan menyimpan informasi tentang berbagai bahasa pemrograman.

Di dalam tabel, kami memiliki kolom berikut:

  1. ID – INT NOT NULL AUTO_INCREMENT
  2. Language_name – VARCHAR(100) NOT NULL
  3. Beginner_Friendly – BOOLEAN

Pertimbangkan kueri di bawah ini untuk mengimplementasikan database di atas:

CREATE DATABASE sampled;

USE sampled;

CREATE TABLE languages (

  ID INT NOT NULL AUTO_INCREMENT,

  Language_name VARCHAR(100),

  Beginner_friendly BOOLEAN,

  PRIMARY KEY (ID)

);

Setelah Anda menjalankan kueri di atas, Anda akan memiliki database sampel dengan tabel bahasa.

Untuk mendapatkan informasi tentang tabel di atas, kita dapat menggunakan pernyataan DESC MySQL seperti yang ditunjukkan pada output di bawah ini:

mysql> DESC languages;

+-------------------+--------------+------+-----+---------+----------------+

| Field             | Type         | Null | Key | Default | Extra          |

+-------------------+--------------+------+-----+---------+----------------+

| ID                | int          | NO   | PRI | NULL    | auto_increment |

| Language_name     | varchar(100) | YES  |     | NULL    |                |

| Beginner_friendly | tinyint(1)   | YES  |     | NULL    |                |

+-------------------+--------------+------+-----+---------+----------------+

3 rows in set (0.01 sec)

Jika Anda melihat bidang Beginner_friendly, yang kami setel sebagai Boolean saat membuat tabel, sekarang ditampilkan Type of TINYINT.

Pada langkah berikutnya, mari kita tambahkan beberapa data ke tabel menggunakan kueri yang disediakan di bawah ini:

INSERT INTO sampled.languages (ID, Language_name, Beginner_friendly) VALUES(1, "Python", True);

INSERT INTO sampled.languages (ID, Language_name, Beginner_friendly) VALUES(2, "C++", False);

Jika sekarang Anda memilih nilai dalam tabel di atas:

mysql> select * from sampled.languages

-> ;

+----+---------------+-------------------+

| ID | Language_name | Beginner_friendly |

+----+---------------+-------------------+

|  1 | Python        |                 1 |

|  2 | C++           |                 0 |

+----+---------------+-------------------+

2 rows in set (0.00 sec)

Anda akan melihat bahwa nilai masing-masing diatur ke 0 dan 1.

CATATAN : Anda dapat menyimpan nilai numerik di kolom Boolean selain nilai True dan False. Misalnya, pertimbangkan kueri di bawah ini:

INSERT INTO sampled.languages (ID, Language_name, Beginner_friendly) VALUES(3, "Go Lang", 10);

Jika Anda menjalankan kueri di atas, MySQL tidak akan melaporkan error. Sebagai gantinya, itu akan menyimpan nilai numerik sebagai 10. Pertimbangkan output yang ditunjukkan di bawah ini:

mysql> select * from sampled.languages;

+----+---------------+-------------------+

| ID | Language_name | Beginner_friendly |

+----+---------------+-------------------+

|  1 | Python        |                 1 |

|  2 | C++           |                 0 |

|  3 | Go Lang       |                10 |

+----+---------------+-------------------+

3 rows in set (0.00 sec)

Operator Boolean MySQL

MySQL mendukung berbagai operator Boolean seperti IS TRUE, IS FALSE, IS NOT TRUE, dan IS NOT FALSE. Berdasarkan namanya, Anda dapat menentukan bahwa beberapa melakukan hal yang persis sama.

Misalnya, IS TRUE dan IS NOT FALSE serupa. Kasus yang sama berlaku untuk pasangan lainnya.

Namun, kita dapat menggunakan operator ini untuk mendapatkan sekumpulan nilai yang Benar atau Salah. Misalnya, kueri di bawah mendapatkan semua nilai di mana Beginner_friendly adalah True.

mysql> select TRUE, FALSE;

+------+-------+

| TRUE | FALSE |

+------+-------+

|    1 |     0 |

+------+-------+

1 row in set (0.00 sec)
0

Seperti yang bisa kita lihat dari output, kita hanya mendapatkan nilai di mana nilai Beginner_friendly adalah True.

Anda juga bisa mendapatkan nilai False menggunakan keduanya IS TRUE or IS NOT TRUE.

mysql> select TRUE, FALSE;

+------+-------+

| TRUE | FALSE |

+------+-------+

|    1 |     0 |

+------+-------+

1 row in set (0.00 sec)
1

Kesimpulan

Panduan ini telah menunjukkan kepada Anda bagaimana menerapkan dan menggunakan tipe Data Boolean MySQL untuk menyimpan nilai Benar atau Salah.

Apa itu tipe data Tinyint?

Tipe TINYINT adalahBerarti integer dengan range yang sangat kecil yaitu –2 sampai 2 , -1 atau 0 sampai 2. -1 jika UNSIGNED. Atribut yang dibolehkan adalah AUTO_INCREMENT, UNSIGNED, dan ZEROFILL. Harga default adalah NULL jika bisa atau 0 jika NOT NULL dengan peyimpanan 1 byte.

Apa itu integer dalam database?

Keterangan. Jenis data int adalah jenis data bilangan bulat utama dalam SQL Server. Jenis data bigint dimaksudkan untuk digunakan ketika nilai bilangan bulat mungkin melebihi rentang yang didukung oleh jenis data int .

Berapakah jumlah ukuran memori pada tipe data Tinyint?

TINYINT memiliki jangkauan angka dari -128 sampai 127, dengan maksimal penyimpanan jumlah angka dari 0 sampai 255.

Manakah yang termasuk dalam tipe data fixed point?

Tipe data fixed point adalah tipe data angka pecahan (desimal), dimana jumlah angka pecahan (angka dibelakang koma) sudah ditentukan dari awal. DECIMAL merupakan kata kunci untuk mendefinisikan suatu kolom sebagai fixed point.