Tipe Data MySQL
Setiap kolom dalam tabel database harus memiliki nama dan tipe data.
Seorang pengembang SQL harus memutuskan jenis data yang akan disimpan di setiap kolom saat membuat tabel. Tipe data adalah panduan bagi SQL untuk memahami jenis data apa yang diharapkan berada di dalam setiap kolom, dan juga menentukan bagaimana SQL akan berinteraksi dengan data yang disimpan.
Di MySQL, terdapat tiga tipe data utama: string, numerik, dan tanggal dan waktu.
Tipe Data String
Tipe data | Deskripsi |
---|---|
CHAR(size) | Sebuah string dengan panjang tetap (dapat berisi huruf, angka, dan karakter khusus). Parameter size menentukan panjang kolom dalam karakter, yang bisa antara 0 hingga 255. Defaultnya adalah 1. |
VARCHAR(size) | Sebuah string dengan panjang variabel (dapat berisi huruf, angka, dan karakter khusus). Parameter size menentukan panjang maksimum kolom dalam karakter, yang bisa antara 0 hingga 65535. |
BINARY(size) | Sama dengan CHAR() , tetapi menyimpan string byte biner. Parameter size menentukan panjang kolom dalam byte. Defaultnya adalah 1. |
VARBINARY(size) | Sama dengan VARCHAR() , tetapi menyimpan string byte biner. Parameter size menentukan panjang maksimum kolom dalam byte. |
TINYBLOB | Untuk BLOB (Binary Large OBjects). Panjang maksimum: 255 byte. |
TINYTEXT | Menyimpan string dengan panjang maksimum 255 karakter. |
TEXT(size) | Menyimpan string dengan panjang maksimum 65,535 byte. |
BLOB(size) | Untuk BLOB (Binary Large OBjects). Menyimpan hingga 65,535 byte data. |
MEDIUMTEXT | Menyimpan string dengan panjang maksimum 16,777,215 karakter. |
MEDIUMBLOB | Untuk BLOB (Binary Large OBjects). Menyimpan hingga 16,777,215 byte data. |
LONGTEXT | Menyimpan string dengan panjang maksimum 4,294,967,295 karakter. |
LONGBLOB | Untuk BLOB (Binary Large OBjects). Menyimpan hingga 4,294,967,295 byte data. |
ENUM(val1, val2, val3, …) | Sebuah objek string yang hanya dapat memiliki satu nilai, yang dipilih dari daftar nilai yang mungkin. Anda dapat mencantumkan hingga 65,535 nilai dalam daftar ENUM. Jika nilai yang dimasukkan tidak ada dalam daftar, maka nilai kosong akan dimasukkan. Nilai-nilai diurutkan sesuai urutan yang Anda masukkan. |
SET(val1, val2, val3, …) | Sebuah objek string yang dapat memiliki 0 atau lebih nilai, yang dipilih dari daftar nilai yang mungkin. Anda dapat mencantumkan hingga 64 nilai dalam daftar SET. |
Tipe Data Numerik
Tipe Data | Deskripsi |
---|---|
BIT(ukuran) | Tipe nilai bit. Jumlah bit per nilai ditentukan dalam parameter ukuran . Ukuran dapat menampung nilai dari 1 hingga 64. Nilai default untuk ukuran adalah 1. |
TINYINT(ukuran) | Bilangan bulat yang sangat kecil. Rentang bertanda (signed) adalah dari -128 hingga 127. Rentang tanpa tanda (unsigned) adalah dari 0 hingga 255. Parameter ukuran menentukan lebar tampilan maksimum (yang adalah 255). |
BOOL | Nilai nol dianggap sebagai false , sedangkan nilai non-nol dianggap sebagai true . |
BOOLEAN | Sama dengan BOOL . |
SMALLINT(ukuran) | Bilangan bulat kecil. Rentang bertanda adalah dari -32768 hingga 32767. Rentang tanpa tanda adalah dari 0 hingga 65535. Parameter ukuran menentukan lebar tampilan maksimum (yang adalah 255). |
MEDIUMINT(ukuran) | Bilangan bulat sedang. Rentang bertanda adalah dari -8388608 hingga 8388607. Rentang tanpa tanda adalah dari 0 hingga 16777215. Parameter ukuran menentukan lebar tampilan maksimum (yang adalah 255). |
INT(ukuran) | Bilangan bulat sedang. Rentang bertanda adalah dari -2147483648 hingga 2147483647. Rentang tanpa tanda adalah dari 0 hingga 4294967295. Parameter ukuran menentukan lebar tampilan maksimum (yang adalah 255). |
INTEGER(ukuran) | Sama dengan INT(ukuran) . |
BIGINT(ukuran) | Bilangan bulat besar. Rentang bertanda adalah dari -9223372036854775808 hingga 9223372036854775807. Rentang tanpa tanda adalah dari 0 hingga 18446744073709551615. Parameter ukuran menentukan lebar tampilan maksimum (yang adalah 255). |
FLOAT(ukuran, d) | Bilangan titik mengambang. Jumlah total digit ditentukan dalam parameter ukuran . Jumlah digit setelah titik desimal ditentukan dalam parameter d . Sintaks ini sudah tidak digunakan lagi di MySQL 8.0.17, dan akan dihapus di versi MySQL mendatang. |
FLOAT(p) | Bilangan titik mengambang. MySQL menggunakan nilai p untuk menentukan apakah akan menggunakan FLOAT atau DOUBLE untuk tipe data yang dihasilkan. Jika p dari 0 hingga 24, tipe data menjadi FLOAT() . Jika p dari 25 hingga 53, tipe data menjadi DOUBLE() . |
DOUBLE(ukuran, d) | Bilangan titik mengambang berukuran normal. Jumlah total digit ditentukan dalam parameter ukuran . Jumlah digit setelah titik desimal ditentukan dalam parameter d . |
DOUBLE PRECISION(ukuran, d) | Sama dengan DOUBLE(ukuran, d) . |
DECIMAL(ukuran, d) | Bilangan titik tetap yang tepat. Jumlah total digit ditentukan dalam parameter ukuran . Jumlah digit setelah titik desimal ditentukan dalam parameter d . Jumlah maksimum untuk ukuran adalah 65. Jumlah maksimum untuk d adalah 30. Nilai default untuk ukuran adalah 10. Nilai default untuk d adalah 0. |
DEC(ukuran, d) | Sama dengan DECIMAL(ukuran, d) . |
Tipe Data Tanggal dan Waktu
Tipe Data | Deskripsi |
---|---|
DATE | Tanggal. Format: YYYY-MM-DD. Rentang yang didukung adalah dari ‘1000-01-01’ hingga ‘9999-12-31’. |
DATETIME(fsp) | Kombinasi tanggal dan waktu. Format: YYYY-MM-DD hh:mm:ss. Rentang yang didukung adalah dari ‘1000-01-01 00:00:00’ hingga ‘9999-12-31 23:59:59’. Menambahkan DEFAULT dan ON UPDATE dalam definisi kolom memungkinkan inisialisasi dan pembaruan otomatis ke tanggal dan waktu saat ini. |
TIMESTAMP(fsp) | Stempel waktu (timestamp). Nilai TIMESTAMP disimpan sebagai jumlah detik sejak epoch Unix (‘1970-01-01 00:00:00’ UTC). Format: YYYY-MM-DD hh:mm:ss. Rentang yang didukung adalah dari ‘1970-01-01 00:00:01’ UTC hingga ‘2038-01-09 03:14:07’ UTC. Inisialisasi dan pembaruan otomatis ke tanggal dan waktu saat ini dapat ditentukan dengan menggunakan DEFAULT CURRENT_TIMESTAMP dan ON UPDATE CURRENT_TIMESTAMP dalam definisi kolom. |
TIME(fsp) | Waktu. Format: hh:mm:ss. Rentang yang didukung adalah dari ‘-838:59:59’ hingga ‘838:59:59’. |
YEAR | Tahun dalam format empat digit. Nilai yang diizinkan dalam format empat digit: 1901 hingga 2155, dan 0000. MySQL 8.0 tidak mendukung tahun dalam format dua digit. |