Berikut adalah penjelasan lengkap tentang struktur data (Data Types) di MySQL, sehingga bisa memahami tipe data apa yang tepat untuk setiap kolom dalam tabel.
๐๏ธ 1. Tipe Data Number (Angka)
A. Integer (bilangan bulat)
| Tipe | Rentang | Ukuran |
|---|---|---|
| TINYINT | -128 s/d 127 | 1 byte |
| SMALLINT | -32,768 s/d 32,767 | 2 byte |
| MEDIUMINT | -8 juta s/d 8 juta | 3 byte |
| INT / INTEGER | -2 milyar s/d 2 milyar | 4 byte |
| BIGINT | sangat besar | 8 byte |
Tambahan:
UNSIGNEDโ hanya angka positif (rentangnya menjadi 2x lebih besar)
B. Floating Point (angka pecahan)
Digunakan untuk angka desimal:
| Tipe | Keterangan |
|---|---|
| FLOAT | presisi sedang |
| DOUBLE | presisi lebih tinggi |
| DECIMAL(M,D) | presisi tetap, cocok untuk uang |
Contoh:
DECIMAL(10,2) -- total 10 digit, 2 digit di belakang koma
๐ 2. Tipe Data String (Teks)
A. Text pendek
| Tipe | Maks panjang |
|---|---|
| CHAR(n) | fix-length (mis: kode negara) |
| VARCHAR(n) | panjang variabel (nama, alamat pendek) |
VARCHAR paling sering digunakan.
B. Text panjang
| Tipe | Maks ukuran |
|---|---|
| TINYTEXT | 255 bytes |
| TEXT | 65 KB |
| MEDIUMTEXT | 16 MB |
| LONGTEXT | 4 GB |
Dipakai untuk deskripsi, artikel, JSON panjang, dll.
๐๏ธ 3. Tipe Data Tanggal & Waktu
| Tipe | Contoh | Keterangan |
|---|---|---|
| DATE | 2025-12-09 | tanggal |
| TIME | 14:30:55 | waktu |
| DATETIME | 2025-12-09 14:30:55 | tanggal + waktu |
| TIMESTAMP | otomatis terset oleh server | cocok untuk log perubahan |
| YEAR | 2024 | tahun |
TIMESTAMP bisa auto-update:
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
๐ 4. Tipe Data Boolean
MySQL tidak punya boolean asli:
BOOL / BOOLEAN โ TINYINT(1)
0 = false
1 = true
๐ฆ 5. Tipe Data Binary
Untuk menyimpan data biner (file, gambar, enkripsi):
| Tipe | Maks ukuran |
|---|---|
| BINARY(n) | fixed binary |
| VARBINARY(n) | variabel |
| BLOB | 65 KB |
| MEDIUMBLOB | 16 MB |
| LONGBLOB | 4 GB |
๐ 6. Tipe Data JSON (MySQL 5.7+)
MySQL mendukung tipe JSON asli:
data JSON
Contoh:
INSERT INTO produk (info) VALUES ('{"warna":"merah","stok":10}');
๐งฌ 7. Tipe Data ENUM & SET
ENUM
Memilih salah satu nilai:
status ENUM('aktif','nonaktif','banned')
SET
Memilih banyak nilai sekaligus.
๐ Ringkasan Tipe Data MySQL
| Kategori | Contoh |
|---|---|
| Number | INT, BIGINT, DECIMAL |
| String | VARCHAR, TEXT |
| Date/Time | DATE, DATETIME |
| Boolean | TINYINT(1) |
| Binary | BLOB |
| JSON | JSON |
| Special | ENUM, SET |
Leave a Reply