Tipe data MySQL penting untuk dipahami sebelum Anda mulai membuat dan bekerja dengan database MySQL. Jika Anda menetapkan setiap kolom dengan benar, Anda memastikan bahwa database dioptimalkan dan data disimpan dengan aman
Dalam tutorial ini Anda akan belajar tentang tipe data MySQL yang berbeda
Apa itu Tipe Data di MySQL?
Nama dan tipe data menentukan setiap kolom dalam tabel database. Tipe data yang ditentukan memberi tahu MySQL jenis nilai apa yang akan disimpannya, berapa banyak ruang yang mereka butuhkan, dan jenis operasi apa yang dapat dilakukannya dengan tipe data ini
Ada banyak tipe data berbeda yang dapat Anda simpan di tabel MySQL
Mereka dikelompokkan ke dalam lima kategori utama
- Tipe data numerik
- Tipe data tanggal dan waktu
- Tipe data string
- Tipe data spasial
- tipe data JSON
Baca terus untuk mempelajari lebih lanjut tentang setiap grup dan lihat tipe data mana yang disertakan
Tipe Data Numerik
Saat menyimpan angka dalam kolom database, gunakan salah satu tipe data numerik. MySQL mendukung tipe data numerik yang tepat dan perkiraan
Kategori numerik dibagi lagi menjadi kelompok-kelompok berikut
- Tipe data bilangan bulat
- Tipe data titik-mengambang
- Tipe data titik tetap
- Tipe data nilai bit
Jenis bilangan bulat
Tipe data integer digunakan untuk bilangan bulat (integer). Mereka termasuk nilai-nilai positif dan negatif. Namun, mereka tidak menangani bilangan pecahan
Oleh karena itu, angka seperti 30 dan -5435 dapat disimpan sebagai tipe data integer, sedangkan 5,3 atau 1/5 tidak dapat disimpan.
Jenis bilangan bulat ditandatangani atau tidak ditandatangani. Mereka dibagi lagi berdasarkan ukurannya, berbeda dengan panjang dan jangkauannya
BytesRange (unsigned)Range (signed)TINYINT1from 0 to 255from -128 to 127SMALLINT2from 0 to 65535from -32768 to 32767MEDIUMINT3from 0 to 16777215from -8388608 to 8388607INT4from 0 to 4294967295from -2147483648 to 2147483647BIGINT8from 0 to 18446744073709551615from -9223372036854775808 to 9223372036854775807TINYINT adalah bilangan bulat yang sangat kecil yang menggunakan 1 byte penyimpanan. Ini terdiri dari hingga 4 digit. Rentang unsignednya adalah dari 0 hingga 255. Jika ditandatangani, rentangnya dari -128 hingga 127
SMALLINT adalah bilangan bulat kecil yang menggunakan 2 byte penyimpanan. Ini terdiri dari hingga 5 digit. Rentang unsignednya adalah dari 0 hingga 65535. Saat ditandatangani, rentangnya dari -32768 hingga 32767
MEDIUMINT adalah bilangan bulat berukuran sedang yang menggunakan penyimpanan 3 byte. Ini memiliki hingga 9 digit. Jika tidak ditandatangani, rentangnya dari 0 hingga 16777215. Ditandatangani, nilai minimumnya adalah -8388608, sedangkan nilai maksimumnya adalah 8388607
INT adalah bilangan bulat yang menggunakan 4 byte penyimpanan. Ini menggunakan hingga 11 digit. Saat tidak ditandatangani, rentangnya dari 0 hingga 4294967295. Jika ditandatangani, rentangnya dari -2147483648 hingga 2147483647
BIGINT adalah bilangan bulat besar yang menggunakan penyimpanan 8 byte. Ini memiliki hingga 20 digit. Nilai minimum yang ditandatangani adalah 0, sedangkan nilai maksimum yang ditandatangani adalah 18446744073709551615. Jika ditandatangani, rentangnya dari -9223372036854775808 hingga 9223372036854775807
Jenis Titik Mengambang
Tipe data numerik floating-point adalah bilangan rasional yang digunakan untuk merepresentasikan nilai perkiraan. Gunakan tipe data floating-point untuk perhitungan presisi tinggi
Jenis floating-point termasuk
- FLOAT mewakili nilai presisi tunggal yang menggunakan 4 byte dan menyertakan hingga 6 atau 7 digit signifikan
- DOUBLE mewakili nilai presisi ganda yang menggunakan 8 byte dan menyertakan hingga 15 atau 16 digit signifikan
Sintaks dasar untuk mendefinisikan FLOAT/DOUBLE tipe data adalah FLOAT(M,D)/SMALLINT0
SMALLINT_1 menunjukkan jumlah total digit, sedangkan SMALLINT2 adalah jumlah desimal. Misalnya, nilai 5143,234 akan ditetapkan sebagai 7,3 karena memiliki total 7 digit dan 3 digit setelah titik desimal
Anda juga dapat menggunakan sintaks SMALLINT_3 untuk menentukan tipe data floating-point, di mana SMALLINT4 menentukan presisi. Jika SMALLINT_4 memiliki nilai dari 0 hingga 23, itu adalah kolom presisi tunggal. Jika presisi antara 24 dan 53, itu adalah kolom presisi ganda
BytesRange (unsigned) Range (signed)FLOAT4dari 1. 175494351E-38 ke 3. 402823466E+38dari -3. 402823466E+38 hingga -1. 175494351E-38DOUBLE8dari 0 dan 2. 22507385850720 14E- 308 ke 1. 797693134862315 7E+ 308dari -1. 7976931348623 157E+ 308 ke -2. 22507385850720 14E- 308Catatan. Jangan gunakan angka titik-mengambang saat membandingkan nilai, terutama saat menangani data moneter. Sebagai gantinya, gunakan tipe data SMALLINT_6 untuk kasus penggunaan tersebut
Jenis Titik Tetap
Untuk menyimpan nilai numerik yang tepat, gunakan tipe data titik tetap – SMALLINT6. Karena mewakili angka pasti, tipe data ini sebagian besar digunakan untuk data yang mengandalkan nilai presisi (seperti data moneter)
Sintaks dasarnya adalah SMALLINT8, di mana SMALLINT4 berarti presisi (jumlah digit signifikan) dan SMALLINT2 berarti skala (jumlah digit setelah titik desimal)
Jumlah digit maksimum untuk presisi adalah 65, sedangkan nilai maksimum untuk skala adalah 30
Jika Anda tidak menentukan presisi dan skala, kolom akan menggunakan nilai default. Secara default, nilai P,D adalah 10,0
Jenis Nilai Bit
Tipe data MEDIUMINT_1 menyimpan nilai biner. Saat membuat kolom yang akan menyimpan nilai tersebut, Anda menentukan jumlah nilai bit mulai dari 1 hingga 64
Sintaks untuk tipe data MySQL ini adalah MEDIUMINT2. Jika Anda tidak menentukan MEDIUMINT_3, nilai defaultnya adalah 1
Tipe Data Tanggal dan Waktu
Tanggal dan waktu adalah tipe data yang umum digunakan. Apakah Anda menyimpan waktu entri data, tanggal lahir atau stempel waktu saat ini, Anda menggunakan salah satu kolom berikut
Termasuk tipe data tanggal dan waktu
- MEDIUMINT4, MEDIUMINT5
- MEDIUMINT6
- MEDIUMINT7
- MEDIUMINT_8
TANGGAL WAKTU, TANGGAL WAKTU
Untuk menyimpan nilai tanggal dan waktu, gunakan MEDIUMINT4 atau MEDIUMINT5. Kedua tipe data menyimpan informasi dalam YYYY-MM-DD HH. MM. format SS. Ini termasuk tahun, bulan, hari, jam, menit, dan detik
Perbedaan utama antara keduanya adalah jangkauan mereka
- MEDIUMINT4 nilai berkisar dari 1000-01-01 00. 00. 00 hingga 9999-12-31 23. 59. 59
- MEDIUMINT5 nilai berkisar dari 1970-01-01 00. 00. 01 hingga 2038-01-19 03. 14. 07
Anda dapat menyertakan pecahan detik untuk kedua opsi. Untuk melakukannya, tentukan presisi mengikuti sintaks INT3/INT4
Misalnya, untuk menyimpan stempel waktu 10. 53 PM pada tanggal 1 Maret 2021, dengan tiga detik pecahan, tentukan tipe data INT5. Entri disimpan sebagai. 01-03-2021 22. 53. 35. 346
Catatan. Pelajari cara bekerja dengan stempel waktu tanggal/waktu di MySQL dengan tutorial mendalam kami tentang penggunaan Fungsi Tanggal/Waktu MySQL
TANGGAL
MEDIUMINT6 digunakan untuk menyimpan nilai tanggal dalam format YYYY-MM-DD (tahun, bulan, tanggal)
Tipe data mendukung rentang 1000-01-01 hingga 9999-12-31
WAKTU
MEDIUMINT7 digunakan untuk menyimpan nilai waktu sebagai HH-MM-SS (jam, menit, detik) atau HHH-MM-SS. Entri yang menunjukkan waktu berlalu atau perbedaan waktu disimpan dan diambil dalam format yang lebih panjang (jika membutuhkan lebih banyak digit selama berjam-jam)
Tipe data mendukung rentang 1000-01-01 hingga 9999-12-31
TAHUN
MEDIUMINT8 menyimpan nilai tahun dalam format YYYY. Ini mendukung nilai dalam kisaran 1901-2155
Sedangkan versi yang lebih tua dari MySQL 5. 7. 5 mendukung entri 2 dan 4 digit untuk MEDIUMINT8, belum ada dukungan 2 digit sejak 5. 7. 5 rilis
Tipe Data String
Saat menyimpan string data, gunakan salah satu tipe data string. Mereka dapat berisi huruf, angka, gambar, atau file
Karenanya, ada beberapa tipe data string yang berbeda
- BIGINT0 dan BIGINT1
- BIGINT2 dan BIGINT3
- BIGINT_4 dan BIGINT5
- BIGINT_6
- BIGINT_7
CHAR dan VARCHAR
BIGINT0 dan BIGINT1 adalah tipe data yang digunakan untuk menyimpan string non-biner. Perbedaan utama antara keduanya adalah bagaimana mereka menyimpan data
BIGINT0 menyimpan string dengan panjang tetap (hingga 255 karakter). Saat membuat kolom BIGINT_0, Anda menentukan panjangnya menggunakan sintaks FLOAT2. MEDIUMINT3 adalah jumlah karakter yang ingin Anda ambil. Jika Anda tidak menentukan panjangnya, ini menggunakan nilai default 1
Nilai-nilai ini disimpan dengan bantalan kanan dengan panjang yang ditentukan. Oleh karena itu, jika Anda menyiapkan kolom FLOAT_4 dan menyimpan entri tiga karakter ke dalamnya, itu masih membutuhkan lima karakter
BIGINT_1 menyimpan string dengan panjang variabel. Meskipun panjangnya harus ditentukan saat membuat kolom, nilainya tidak diisi dengan benar. Mereka memiliki batas maksimum, tetapi panjangnya tidak tetap dan bervariasi tergantung pada data
Sebelumnya, rentang entri adalah dari 0 hingga 255. Setelah rilis MySQL 5. 0. 3 , BIGINT1 rentang hingga 65 535 karakter
BINER dan VARBINARI
BIGINT2 dan BIGINT3 tipe data serupa dengan BIGINT0 dan BIGINT1 yang disebutkan sebelumnya. Perbedaan utama antara kedua kelompok ini adalah BIGINT_2 dan BIGINT3 digunakan untuk string biner
BIGINT_2 digunakan untuk string biner dengan panjang tetap, hingga 255 byte. Sintaks utama untuk mendefinisikan kolom tersebut adalah DOUBLE4, di mana MEDIUMINT3 adalah jumlah byte
BIGINT_3 menyimpan string biner dengan panjang variabel. MySQL versi 5. 0. 3 dan yang lebih baru menyimpan hingga 65 535 byte
BLOB dan TEKS
Baik BIGINT_4 dan BIGINT5 digunakan untuk menyimpan data dalam jumlah besar
BIGINT4 menangani Binary Large Objects (yaitu kumpulan besar data biner seperti gambar, file audio atau PDF)
Ada 4 jenis tipe data BLOB yang dapat digunakan, bergantung pada ukuran data yang Anda perlukan
- FLOAT0 (0 – 255; 255 byte)
- BIGINT_4 (0 – 65.535; 16 KB)
- FLOAT2 (0 – 16.777.215; 16 MB)
- FLOAT3 (0 – 4.294.967.295; 4 GB)
BIGINT5 tipe data adalah untuk menyimpan string teks yang lebih panjang. Sesuai dengan jumlah data yang dibutuhkan, ada
- FLOAT5 (0 – 255; 255 byte)
- BIGINT5 (0 – 65.535; 16 KB)
- FLOAT7 (0 – 16.777.215; 16 MB)
- FLOAT8 (0 – 4.294.967.295; 4 GB)
ENUM
Tipe data BIGINT6 digunakan untuk menyimpan salah satu dari kemungkinan nilai yang telah ditentukan sebelumnya dalam sebuah kolom. Kolom dapat memiliki hingga 65535 nilai berbeda
Saat membuat kolom tabel BIGINT6 di MySQL, Anda menentukan daftar semua nilai yang diizinkan
MENGATUR
Seperti BIGINT_6, jenis data BIGINT7 memiliki daftar nilai yang mungkin disimpan di kolom
Perbedaan utama antara keduanya adalah bahwa BIGINT_7 memungkinkan entri memiliki lebih dari satu nilai
Misalnya, jika kolom didefinisikan sebagai DOUBLE_4 dan memiliki empat kemungkinan nilai dalam daftar, satu entri dapat memiliki nilai 'Merah', sementara yang lain dapat memiliki nilai 'Merah', 'Kuning'
Jumlah maksimum nilai yang diizinkan adalah 64
Tipe Data Spasial
Saat menyimpan data spasial, Anda dapat menggunakan salah satu dari banyak tipe data spasial berbeda yang didukung MySQL. Mereka digunakan untuk mewakili informasi tentang bentuk geometris dan lokasi fisik
Kita bisa membaginya menjadi dua kelompok
- Nilai geometri tunggal
- Koleksi nilai
Nilai Geometri Tunggal
Tipe data geometri tunggal mencakup DOUBLE5, DOUBLE6, DOUBLE7, dan DOUBLE8
- DOUBLE_5 menyimpan segala jenis nilai geometri/spasial
- DOUBLE_6 digunakan untuk nilai satu poin
- DOUBLE_7 menyimpan kumpulan beberapa titik yang membentuk garis
- DOUBLE_8 adalah tipe data yang digunakan untuk menyimpan kumpulan beberapa titik yang membentuk permukaan poligonal
Kumpulan Nilai
Kumpulan tipe data nilai meliputi FLOAT(M,D)_3, FLOAT(M,D)4, FLOAT(M,D)5, dan FLOAT(M,D)6
- FLOAT(M,D)_3 menyimpan kumpulan nilai geometri/spasial
- FLOAT(M,D)_4 digunakan untuk menyimpan koleksi beberapa nilai poin
- FLOAT(M,D)_5 menyimpan koleksi beberapa baris
- FLOAT(M,D)_6 digunakan untuk kumpulan beberapa poligon
Tipe Data JSON
Sejak versi 5. 7. 8, MySQL menyertakan dukungan untuk tipe data asli SMALLINT_01, memungkinkan pengguna untuk menyimpan dan mengelola dokumen JSON melalui database
MySQL memastikan bahwa dokumen JSON valid dan menyimpannya ke dalam kolom JSON
Kesimpulan
Seperti yang diuraikan dalam artikel ini, ada banyak tipe data MySQL yang dapat dipilih. Memiliki variasi yang luas mungkin tampak membingungkan pada awalnya. Namun, keragaman tipe data pasti akan membantu Anda menemukan yang paling sesuai dengan data Anda dan mengoptimalkan database untuk beroperasi dengan sebaik-baiknya.