Overview
SQL memiliki data types yang beragam. Kenali setiap bentuk tipe data supaya bisa memasukkannya ke dalam database.
Dalam bahasa pemrograman SQL, sebuah tipe data menentukan jenis bentuk data yang dapat ditampung dalam sebuah kolom ataupun variabel.
Adapun bentuk tipe data yang dapat ditemukan dalam sebuah database sangat bervariasi, tergantung dari jenis database management system (DBMS) yang digunakan. Walaupun jumlahnya bervariasi, kita dapat menggolongkan keseluruhan tipe data menjadi beberapa kategori besar.
Pada contoh pembahasan ini, kita akan menggunakan MySQL sebagai DBMS-nya.
Pada dasarnya, tipe data yang dapat ditampung oleh SQL adalah tipe data numerik, tipe data teks, dan tipe data date. Dengan banyaknya DBMS yang ada, maka muncul berbagai macam jenis tipe data baru dari tiap kategori yang telah disebutkan. Berikut ini akan kita bahas untuk masing-masing jenis tipe data.
#1 Numeric Data Types
Tipe data numerik merupakan salah satu tipe data yang umum ditemukan dalam pemrograman SQL. Tipe data ini merupakan tipe data yang bisa dikenakan operasi aritmatika dan perhitungan sederhana, seperti penjumlahan, pengurangan, perkalian, pembagian, dan juga fungsi matematika lainnya.
Tipe data numerik ini umumnya dibagi ke dalam dua kategori besar, yaitu tipe data integer dan tipe data float.
a. Integer
Integer merupakan sebuah tipe data numerik yang dapat memuat nilai bilangan bulat, contohnya: 1, 2, 3, 4, 5, dan seterusnya. Dalam beberapa DBMS, integer dibagi lagi ke dalam beberapa kategori untuk mengelompokkan jumlah dan besaran nilainya. Berikut beberapa pembagiannya:
BIGINT
BIGINT memiliki range nilai integer sebesar -9,223,372,036,854,775,808 sampai 9,223,372,036,854,775,807, atau bila diekspresikan yaitu dari -263 sampai 263 - 1. BIGINT memiliki jumlah storage sebesar 8 bytes.
INT
INT memiliki range integer sebesar -2,147,483,648 sampai 2,147,483,647 atau bila diekspresikan yaitu dari -231 sampai 231 - 1. INT memiliki jumlah storage sebesar 4 bytes.
SMALLINT
SMALLINT memiliki range integer sebesar -32,768 sampai 32,767 atau bila diekspresikan yaitu dari -215 sampai 215 - 1. SMALLINT memiliki jumlah storage sebesar 2 bytes.
TINYINT
TINYINT memiliki range integer sebesar 0 sampai 255 atau bila diekspresikan yaitu dari 20 - 1 sampai 28 - 1. TINYINT memiliki jumlah storage sebesar 1 byte.
Berikut contoh cara penulisan definisi tipe data integer pada SQL:
Setelah di-input tipe data integer pada langkah sebelumnya, hasil akan berbentuk tabel di bawah ini :
b. Float
Float merupakan tipe data yang memuat nilai desimal dan pecahan, contohnya: 5.6 , 7.12 , 9.8134, dan seterusnya. Tipe data float ini memiliki nilai yang bervariasi, karena itu tipe data float ini dibagi berdasarkan ukuran storage yang digunakan untuk menampungnya. Berikut pembagian untuk ukuran storage untuk tipe data float ini:
Precision memiliki arti yaitu jumlah digit setelah tanda koma (pada sebuah angka desimal). Artinya, semakin banyak jumlah digit setelah tanda koma, maka akan semakin banyak bits yang dibutuhkan untuk menampung.
Berdasarkan tipe datanya, float dibagi menjadi 2 kategori, yaitu:
Float/Real
Float atau real merupakan tipe data yang umum digunakan untuk mengekspresikan angka desimal. Pada tipe data ini, jumlah bits penyimpanan yang dibutuhkan untuk menampung data tersebut adalah maksimum 4 bytes.
Berdasarkan kutipan dari hackr.io, nilai data yang dapat ditampung berkisar antara -3.40282347E+38F sampai 3.40282347E+38F, dengan jumlah digit desimal berkisar antara 6 - 7 digit. Apabila kita membutuhkan tipe data desimal yang nilainya tidak terlalu besar, kita bisa mengekspresikan dengan tipe data ini, dibandingkan dengan menggunakan tipe data double yang akan kita bahas selanjutnya.
Double
Tipe data double ini merupakan salah satu tipe data desimal yang memiliki jumlah storage jauh lebih besar dibandingkan dengan float. Jumlah storage yang dapat digunakan untuk menampung tipe data ini adalah 8 bytes.
Dikutip dari hackr.io, nilai data yang dapat ditampung berkisar antara -1.79769313486231570E+308 sampai 1.79769313486231570E+308, dengan jumlah digit desimal berkisar antara 15 - 16 digit.
Tipe data double ini digunakan apabila kita perlu menampung nilai yang besar. Namun perlu diperhatikan semakin besar penampungan yang kita miliki, akan semakin sulit dan mahal untuk manage storage tersebut. Oleh karena itu, kebanyakan data analyst apabila hanya membutuhkan penggunaan data yang nilainya kecil, biasanya mereka hanya menggunakan float saja, dan jarang sekali menggunakan double.
Berikut contoh penulisan tipe data float pada SQL:
Hasil dalam bentuk tabel di bawah ini setelah di-input tipe data float pada langkah sebelumnya diatas:
#2 Text/Char Data Types
Tipe data teks atau karakter ini merupakan salah satu tipe data yang sering juga ditemui dalam database. Tipe data ini dapat memuat karakter apapun yang kita temui pada keyboard komputer, maupun karakter spesial lainnya.
Pada tipe data ini, umumnya ada dua tipe data teks, yaitu CHAR dan VARCHAR. Berikut pembahasan untuk tiap kategori :
CHAR
CHAR merupakan tipe data yang digunakan untuk menampung teks yang berisikan karakter yang panjangnya sudah ditentukan. Pada saat kita membuat sebuah tabel pada SQL, kita menggunakan CHAR apabila kita ingin memasukan jumlah karakter yang dapat ditampung oleh sebuah kolom.
Sebagai contoh, apabila kita ingin membuat sebuah kolom yang dapat menampung 8 karakter, maka kita akan menuliskan CHAR(8). Apabila pada praktiknya jumlah data yang dimasukan kurang dari 8, maka SQL secara otomatis akan mengisikan tanda spasi agar panjang karakter menjadi 8.
Namun, apabila jumlah karakter lebih dari 8, maka SQL akan mengembalikan error dan tidak akan bisa diproses. Perhatikan cara penulisannya berikut ini:
Hasil dalam bentuk tabel dibawah ini setelah di-input tipe data char pada langkah sebelumnya diatas:
VARCHAR
VARCHAR merupakan tipe data yang sering digunakan secara umum. Pada penulisan VARCHAR, kita juga dapat menuliskan berapa banyak karakter yang bisa dituliskan, sama seperti penulisan CHAR. Namun tidak akan menghasilkan error apabila jumlah karakternya melebihi sedikit dari jumlah yang dituliskan.
Pada penerapannya, VARCHAR ini banyak digunakan apabila kita ingin menuliskan karakter yang relatif lebih panjang dibandingkan dengan CHAR. Perhatikan contoh penulisannya pada SQL:
Hasil dalam bentuk tabel dibawah ini setelah di-input tipe data varchar pada langkah sebelumnya diatas:
Tabel perbedaan CHAR dan VARCHAR
VARCHAR bisa untuk menghemat ruang saat ada variasi berkaitan dengan panjang nilai. Namun, dari segi performa, CHAR lebih baik.
{{COMPONENT_IDENTIFIER}}
#3 Boolean Data Types
Boolean merupakan salah satu tipe data yang umum ditemui juga pada pemrograman SQL. Tipe data ini umumnya bersifat biner, yang hanya berisikan nilai True (1) atau False (0). Perhatikan contoh penggunaannya dalam pemrograman SQL berikut:
Hasil dalam bentuk tabel dibawah ini setelah di-input tipe data boolean pada langkah sebelumnya di atas:
#4 Date and Time Data Types
Tipe data tanggal dan waktu ini merupakan tipe data yang digunakan untuk menyimpan informasi berupa tanggal dan waktu. Bentuknya juga memiliki banyak variasi. Berikut beberapa variasi Date dan Datetime yang sering dijumpai:
Bentuk di atas merupakan sebagian dari bentuk date dan time format yang ada di MySQL, dan masih banyak bentuk lainnya, tergantung dari jenis DBMS-nya. Berikut ini merupakan contoh penulisannya menggunakan SQL:
Hasil dalam bentuk tabel dibawah ini setelah di-input tipe data date, datetime, dan year pada langkah sebelumnya di atas:
Penjelasan lebih lengkap untuk menuliskan bentuk date dan time dan juga bagaimana cara mengubah bentuk tipe data ini dijelaskan lebih lanjut pada artikel SQL - Date Format.
Penutup
Sebagai seorang data analyst, penting bagi kita untuk mengerti tipe data yang kompatibel terhadap sebuah database. Karena apabila tipe data yang dimasukkan salah, maka ada kemungkinan bahwa data tidak akan masuk ke dalam database.
Banyak data analyst yang kesulitan dalam menentukan bentuk format date dan datetime karena bentuknya yang mirip. Sama halnya dengan mendefinisikan bentuk VARCHAR dan juga bentuk INTEGER karena pada aplikasinya, VARCHAR pun dapat menampung angka, walaupun SQL menganggap tipe datanya adalah sebuah teks.
Oleh karena itu, penting bagi seorang data analyst untuk memahami tipe data dan juga bagaimana cara mengelolanya apabila suatu saat diperlukan.
Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!
Rasakan pengalaman belajar di RevoU Full-Stack Program: Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion. Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)
Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!
Rasakan pengalaman belajar di RevoU Full-Stack Program: Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion. Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)
Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!
Rasakan pengalaman belajar di RevoU Full-Stack Program: Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion. Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)