Tipe Data String dalam Database
Memilih tipe data yang tepat sangat penting untuk desain database yang efektif. Ini tidak hanya mempengaruhi akurasi data yang disimpan, tetapi juga kinerja query, ruang penyimpanan, dan bahkan integritas data. Sebagai bagian dari tipe data String, CHAR
, VARCHAR
, dan TEXT
umumnya digunakan untuk menyimpan data teks.
Setiap tipe data ini memiliki karakteristik yang berbeda dan dapat lebih atau kurang sesuai tergantung pada persyaratan khusus dari data yang disimpan. Mereka berbeda dalam cara mereka mengalokasikan ruang, seberapa banyak data yang dapat mereka simpan, dan bagaimana kinerjanya dalam skenario yang berbeda.
CHAR
Tipe data CHAR
dalam SQL digunakan untuk menyimpan nilai string karakter. Itu didefinisikan sebagai CHAR(n)
di mana n
mewakili panjang tetap karakter yang dapat disimpan oleh kolom tersebut. Panjang ini dapat berkisar dari 1 hingga 255 dalam MySQL. Karakteristik kunci dari CHAR
adalah bahwa itu adalah tipe data berpanjang tetap. Ini berarti ukuran kolom tidak berubah, terlepas dari panjang data yang sebenarnya disimpan di dalamnya.
Bagaimana CHAR Bekerja
Ketika Anda memasukkan data ke dalam kolom CHAR
, SQL akan mengisi ruang hingga panjang yang ditentukan. Jika data lebih pendek dari panjang yang ditentukan, ruang yang tersisa akan diisi dengan spasi di belakang. Ketika data diambil, spasi ini dihapus.
Pertimbangkan contoh berikut:
CREATE TABLE Employee (
FirstName CHAR(10),
LastName CHAR(10)
);
Di sini, baik FirstName
maupun LastName
didefinisikan sebagai CHAR(10)
. Jika kita memasukkan nama seperti "John Doe", data akan disimpan sebagai berikut:
FirstName: 'John ' (6 spaces added)
LastName: 'Doe ' (7 spaces added)
Alokasi Ruang dalam CHAR
Seperti yang ditunjukkan dalam contoh di atas, tipe data CHAR
mengalokasikan seluruh panjang ruang yang ditentukan, terlepas dari data yang sebenarnya disimpan. Ini dapat mengakibatkan pemborosan ruang yang signifikan jika data Anda sering jauh lebih pendek dari panjang maksimum. Di sisi lain, pendekatan ini membuat proses pengambilan lebih cepat karena database tahu persis di mana menemukan akhir setiap nilai.
Kasus Penggunaan CHAR
CHAR
terbaik digunakan ketika panjang nilai-nilai konsisten. Misalnya, ini akan sesuai untuk menyimpan data seperti singkatan negara bagian AS (karena semua singkatan negara bagian AS memiliki panjang 2 karakter), kode negara, atau jenis data lain dengan panjang yang konsisten.
VARCHAR
Tipe data VARCHAR
dalam SQL digunakan untuk menyimpan nilai string karakter dengan panjang variabel. Ia didefinisikan sebagai VARCHAR(n)
di mana n
mewakili panjang maksimum karakter yang dapat disimpan oleh kolom tersebut. Panjang ini dapat berkisar hingga angka besar tergantung pada database SQL yang digunakan. Misalnya, MySQL memungkinkan kolom VARCHAR
memiliki panjang hingga 65.535 karakter.
Bagaimana VARCHAR Bekerja
Berbeda dengan CHAR
, VARCHAR
hanya menggunakan ruang yang diperlukan untuk menyimpan data aktual, ditambah sedikit ruang tambahan untuk mencatat panjang data. Ini berarti jika Anda memiliki kolom VARCHAR(100)
dan menyimpan string dengan 10 karakter, maka hanya akan menggunakan ruang untuk 10 karakter (ditambah ruang tambahan untuk informasi panjang), bukan 100 karakter.
Pertimbangkan contoh berikut:
CREATE TABLE Employee (
FirstName VARCHAR(100),
LastName VARCHAR(100)
);
Di sini, baik FirstName
maupun LastName
didefinisikan sebagai VARCHAR(100)
. Jika kita memasukkan nama seperti "John Doe", data akan disimpan sebagai berikut:
FirstName: 'John'
LastName: 'Doe'
Tidak ada spasi tambahan yang ditambahkan di akhir string.
Alokasi Ruang dalam VARCHAR
Seperti yang ditunjukkan dalam contoh di atas, tipe data VARCHAR
hanya mengalokasikan jumlah ruang yang diperlukan untuk menyimpan data ditambah beberapa byte tambahan untuk mencatat panjang data. Jumlah ruang tambahan yang tepat tergantung pada ukuran maksimum kolom. Dalam MySQL, misalnya, jika panjang maksimum adalah 255 atau kurang, digunakan satu byte tambahan. Jika panjang maksimum lebih dari 255, digunakan dua byte tambahan.
Kasus Penggunaan VARCHAR
VARCHAR
terbaik digunakan ketika panjang nilai dalam kolom diharapkan bervariasi secara signifikan, atau ketika panjang maksimum data jauh lebih besar dari panjang rata-ratanya. Misalnya, ini akan sesuai untuk menyimpan data seperti alamat email, nama, dan komentar teks.
TEXT
TEXT
adalah tipe data yang digunakan dalam SQL untuk menyimpan sejumlah besar teks. Berbeda dengan CHAR
dan VARCHAR
, Anda tidak perlu menentukan panjang saat membuat kolom TEXT
. Dalam MySQL, sebuah kolom TEXT
dapat menampung hingga 65.535 karakter. Tipe data TEXT
sangat cocok untuk menyimpan data teks berupa paragraf atau bahkan dokumen lengkap.
Bagaimana TEXT Bekerja
Seperti VARCHAR
, TEXT
hanya menggunakan ruang yang diperlukan untuk menyimpan data aktual. Namun, berbeda dengan VARCHAR
dan CHAR
, kolom TEXT
memiliki beberapa batasan ketika datang ke operasi seperti pengurutan dan manipulasi string.
Pertimbangkan contoh berikut:
CREATE TABLE Article (
Title VARCHAR(100),
Content TEXT
);
Di sini, Title
didefinisikan sebagai VARCHAR(100)
, dan Content
didefinisikan sebagai TEXT
. Jika kita memasukkan judul dan konten artikel, data akan disimpan tanpa spasi tambahan di akhir, mirip dengan VARCHAR
.
Alokasi Ruang dalam TEXT
Tipe data TEXT
hanya mengalokasikan ruang yang diperlukan untuk menyimpan konten aktual. Namun, ada sedikit tambahan overhead dalam bentuk beberapa byte tambahan untuk menyimpan panjang string teks.
Kasus Penggunaan TEXT
TEXT
paling baik digunakan ketika Anda perlu menyimpan sejumlah besar teks. Ini umum digunakan untuk data seperti komentar, deskripsi, atau data apa pun yang mungkin melebihi panjang maksimum kolom VARCHAR
.