Pengantar Jenis Data Bit
Tipe data mewakili atribut yang menyimpan integer, karakter, waktu data, data biner. Misalkan Anda memiliki aplikasi web untuk merekam umpan balik pengguna untuk berbagai pertanyaan. Ini berisi beberapa pertanyaan dikotomis dan beberapa pertanyaan berbasis kotak teks, seperti komentar. Di backend, respons ini disimpan dalam tabel SQL.
Untuk mendesain tabel, kami mendefinisikan kolom dan tipe bidang basis data. SQL Server mendukung berbagai tipe data seperti integer, char, varchar(), float, DateTime, numerik, dll. Hal yang sama dapat diterapkan pada tipe data T-SQL. Untuk mempelajari lebih lanjut tentang tipe data, lihat dokumentasi resmi. Kasus penggunaan bergantung pada nilai yang ingin kita simpan di dalamnya.
Misalkan kita memiliki kolom tertentu dalam tabel yang telah kita buat. Kolom tersebut menerima nilai Boolean 1,0 atau TRUE\False. SQL. Oleh karena itu, di SQL Server, tipe data Boolean tertentu – Bit disediakan.
Bit SQL Server adalah tipe data integer yang menerima nilai 0,1 dan NULL. Ini tersedia di semua versi SQL Server, termasuk Azure SQL Server, Azure Managed Instances, dan SQL di Azure VM.
Penyimpanan Tipe Data Bit
Dalam hal penyimpanan, tipe data Bit dioptimalkan oleh SQL Server. Jika Anda memiliki delapan atau lebih sedikit kolom Bit dalam tabel, SQL Server menyimpannya sebagai 1 byte. Demikian pula, untuk kolom 9 hingga 16-bit, ia menggunakan 2 byte. Selain itu, SQL Server mengubah nilai String TRUE dan FALSE menjadi nilai yang sesuai 1 dan 0.
Sintaks
Sintaks tipe data BIT di SQL Server sangat mudah:
Bit
Penggunaan Praktis Jenis Data Bit
Skrip T-SQL berikut membuat tabel produk dan memasukkan dua nilai data produk ke dalamnya:
- Jika produk tersedia, bit kolom [Tersedia] disetel ke 1.
- Jika produk tidak tersedia, bit kolom [Tersedia] disetel ke 0.
CREATE TABLE Products (
[ProductName] varchar(20),
[Available] BIT
);
Go
INSERT INTO Products (productname,available) values('A',1)
INSERT INTO Products (productname,available) values('B',0)
GO
SELECT * FROM Products
Mari kita potong tabel [Products] dan masukkan nilainya menggunakan string TRUE dan False.
TRUNCATE TABLE Products
INSERT INTO Products (productname,available) values('A','TRUE')
INSERT INTO Products (productname,available) values('B','False')
GO
SELECT * FROM Products
Seperti yang ditunjukkan di bawah ini, SQL Server mengonversi string TRUE menjadi 1 dan False menjadi 0.
Namun, jika Anda mencoba memasukkan nilai lain, seperti Ya atau Tidak, ke dalam tipe data Bit, Anda mendapatkan pesan kesalahan "Konversi gagal".
INSERT INTO Products (productname,available) values('A','Yes')
Saat Anda memasukkan nilai bukan nol ke dalam kolom tipe data Bit, SQL Server mengonversi nilai tersebut menjadi satu. Misalnya pada script berikut kita masukkan nilai 100 pada kolom [tersedia]. Tidak ada pesan kesalahan yang terjadi saat itu.
Jika Anda memilih catatan, Anda memvalidasi bahwa nilai yang dimasukkan adalah 1.
INSERT INTO Products (productname,available) values('A',100)
SELECT * FROM Products;
Demikian pula, SQL Server mengonversi nilai negatif ke nilai 1 di kolom Bit. Seperti yang ditunjukkan di bawah ini, kami memasukkan nilai -100 ke dalam kolom [tersedia]. Kami menerima nilai satu saat mengambilnya:
INSERT INTO Products (productname,available) values('A',-100)
SELECT * FROM Products;
Sebelumnya, kami menggunakan tipe data Bit untuk memeriksa ketersediaan produk. Kita biasanya perlu menampilkan teks di front-end, bukan bit 1 dan 0. Oleh karena itu, kita dapat menggunakan pernyataan CASE di SQL Server.
Dalam kode T-SQL berikut, pernyataan CASE mengembalikan:
- Nilai 1:Produk tersedia
- Nilai 0:Stok Habis
SELECT [ProductName], CASE [Available]
WHEN 1 then 'Product is available.'
WHEN 0 then 'Out of Stock'
ELSE 'NA'
END AS [Availability]
from products
Seperti yang bisa kita lihat sebelumnya, SQL Server mengoptimalkan penyimpanan untuk tipe data Bit. Berikut [TestTable] memiliki delapan kolom dengan tipe data Bit; oleh karena itu, ia menggunakan 1 byte untuk penyimpanan.
CREATE TABLE TestTable (
[Column1] Bit,
[Column2] Bit,
[Column3] Bit,
[Column4] Bit,
[Column5] Bit,
[Column6] Bit,
[Column7] Bit,
[Column8] Bit,
);
Atau, jika Anda menggunakan tinyint atau Tipe data Char(1) , itu akan mengkonsumsi 1 byte untuk setiap kolom. Anda harus menggunakan tipe data Bit, sedangkan Anda membutuhkan nilai Boolean.
Anda juga dapat menggunakan tipe data Bit dalam prosedur atau fungsi tersimpan yang mengembalikan nilai Boolean. Misalnya, kami memiliki fn_customer() fungsi yang memeriksa id pelanggan, dan jika ada, ia mengembalikan nilai yang lain ia mengembalikan 0.
CREATE FUNCTION fn_customer
(
@CustomerID INT
)
RETURNS bit
AS
BEGIN
IF EXISTS (
SELECT [CustomerID] FROM [SalesLT].[Customer]
WHERE [CustomerID][email protected]
)
RETURN 1
RETURN 0
END
Fungsi ini membutuhkan ID pelanggan sebagai parameter input. Jika kami menjalankannya dengan ID pelanggan 10, Anda mendapatkan pesan berikut:
IF (dbo.fn_customer(10)=1)
PRINT 'Customer record is available'
ELSE
PRINT 'Customer record is not available'
Namun, jika ID pelanggan tidak ada di [SalesLT].[Pelanggan] tabel, fungsi mengembalikan nilai 0. Kondisi blok IF tidak benar. Oleh karena itu, Anda mendapatkan pesan yang ditentukan dalam klausa ELSE:
Kesimpulan
Tipe data MSSQL Boolean-Tipe data Bit berguna untuk kolom yang menerima nilai 0,1 atau NULL. SQL Server mengoptimalkan penyimpanan tipe data Bit; oleh karena itu, ini membuat kode menjadi ringkas dan efisien. Demikian pula, Anda dapat menggunakannya untuk mengembalikan nilai Boolean dari prosedur atau fungsi tersimpan.
Baca juga
Menangani Nilai NULL Secara Efektif dengan Fungsi SQL COALESCE untuk Pemula