Lewati ke konten utama

Tipe-Tipe Data pada MySQL dan MariaDB

Setiap kolom dalam tabel database harus memiliki tipe data yang spesifik. Tipe data menentukan jenis nilai yang dapat disimpan oleh kolom tersebut, seperti angka, teks, atau tanggal. Pemilihan tipe data yang tepat sangat penting untuk efisiensi penyimpanan dan kinerja query.

MySQL dan MariaDB memiliki tipe data yang sangat mirip karena MariaDB adalah fork dari MySQL. Berikut adalah kategori utama tipe data yang didukung oleh keduanya.


1. Tipe Data Numerik (Numeric Types)

Digunakan untuk menyimpan data berupa angka.

Tipe DataDeskripsiJangkauan
INTEGER (INT)Bilangan bulat standar.-2,147,483,648 hingga 2,147,483,647 (atau 0 hingga 4,294,967,295 jika UNSIGNED).
TINYINTBilangan bulat yang sangat kecil.-128 hingga 127 (atau 0 hingga 255 jika UNSIGNED).
SMALLINTBilangan bulat kecil.-32,768 hingga 32,767 (atau 0 hingga 65,535 jika UNSIGNED).
MEDIUMINTBilangan bulat berukuran sedang.-8,388,608 hingga 8,388,607 (atau 0 hingga 16,777,215 jika UNSIGNED).
BIGINTBilangan bulat besar.-9,223,372,036,854,775,808 hingga 9,223,372,036,854,775,807.
DECIMAL(P, D)Angka desimal dengan presisi tetap. P adalah total digit, D adalah jumlah digit di belakang koma.Sangat cocok untuk data keuangan agar tidak ada pembulatan. Contoh: DECIMAL(10, 2).
FLOATAngka desimal presisi tunggal (floating-point).Kurang presisi dibandingkan DECIMAL, rentan terhadap masalah pembulatan.
DOUBLEAngka desimal presisi ganda (floating-point).Memiliki presisi lebih tinggi dari FLOAT.
BOOLEAN (BOOL)Sebenarnya disimpan sebagai TINYINT(1). Nilai 0 dianggap FALSE dan 1 dianggap TRUE.

2. Tipe Data Teks (String Types)

Digunakan untuk menyimpan data berupa teks atau string.

Tipe DataDeskripsiUkuran Maksimal
CHAR(N)String dengan panjang tetap. N adalah jumlah karakter (1-255).Jika data lebih pendek dari N, sisanya akan diisi spasi. Cepat untuk data dengan panjang pasti (misal: kode pos).
VARCHAR(N)String dengan panjang variabel. N adalah jumlah karakter maksimal (1-65,535).Hanya menggunakan ruang sesuai panjang data. Paling umum digunakan untuk nama, judul, dll.
TEXTTeks panjang.Hingga 65,535 karakter.
TINYTEXTTeks sangat pendek.Hingga 255 karakter.
MEDIUMTEXTTeks berukuran sedang.Hingga 16,777,215 karakter.
LONGTEXTTeks sangat panjang.Hingga 4,294,967,295 karakter.
ENUMPilihan dari daftar nilai yang sudah ditentukan.Contoh: ENUM('pria', 'wanita'). Hanya salah satu nilai yang bisa dipilih.
SETMirip ENUM, tetapi bisa memilih beberapa nilai dari daftar yang ada.Contoh: SET('membaca', 'menulis', 'menggambar').

3. Tipe Data Tanggal dan Waktu (Date and Time Types)

Digunakan untuk menyimpan informasi temporal.

Tipe DataDeskripsiFormat
DATEMenyimpan tanggal.YYYY-MM-DD
TIMEMenyimpan waktu.HH:MM:SS
DATETIMEMenyimpan kombinasi tanggal dan waktu.YYYY-MM-DD HH:MM:SS
TIMESTAMPMenyimpan kombinasi tanggal dan waktu.YYYY-MM-DD HH:MM:SS. Jangkauannya lebih terbatas dari DATETIME. Berguna untuk melacak waktu perubahan data (ON UPDATE CURRENT_TIMESTAMP).
YEARMenyimpan tahun.YYYY

4. Tipe Data Biner (Binary Types)

Digunakan untuk menyimpan data biner seperti gambar, file, atau data terenkripsi.

Tipe DataDeskripsi
BINARY(N)Data biner dengan panjang tetap.
VARBINARY(N)Data biner dengan panjang variabel.
BLOBBinary Large Object. Untuk data biner berukuran besar.
TINYBLOBVersi kecil dari BLOB.
MEDIUMBLOBVersi sedang dari BLOB.
LONGBLOBVersi sangat besar dari BLOB.

Catatan: Menyimpan file besar (seperti gambar atau video) langsung di database (sebagai BLOB) umumnya tidak disarankan. Praktik yang lebih baik adalah menyimpan path atau URL file tersebut di database, sementara filenya disimpan di sistem file server.


5. Tipe Data Lainnya

Tipe DataDeskripsiCatatan
JSONMenyimpan data dalam format JSON (JavaScript Object Notation).Memungkinkan validasi otomatis dan akses data yang efisien di dalam dokumen JSON. Sangat berguna untuk data semi-terstruktur.

Perbedaan Antara MySQL dan MariaDB

Secara umum, tipe data di atas berlaku untuk keduanya. Namun, MariaDB terkadang memperkenalkan beberapa tipe data atau alias tambahan sebagai bagian dari pengembangannya, misalnya:

  • INET4 / INET6: Untuk menyimpan alamat IPv4 dan IPv6 (di MariaDB).

Meskipun demikian, untuk penggunaan umum dalam pengembangan web, tipe data inti yang telah dijelaskan di atas adalah yang paling sering digunakan dan sepenuhnya kompatibel antara MySQL dan MariaDB.


Referensi

Berikut adalah beberapa tautan referensi resmi dan terpercaya untuk informasi lebih lanjut mengenai tipe data pada MySQL dan MariaDB: