Secara umum tipe data pada MySQL dibagi menjadi 4 yaitu:

- Numeric Values yaitu angka atau bilangan seperti 10; 123; 100.50; -10; 1.2E+17; 2.7e-11; dan sebagainya. Tipe data ini dibagi menjadi dua yaitu Bilangan Bulat (Integer) dan Bilangan Pecahan (Floating-point). Bilangan bulat adalah bilangan tanpa tanda desimal sedangkan bilangan pecahan adalah bilangan dengan tanda desimal. Kedua jenis bilangan ini dapat bernilai positif (+) dan juga negatif (-). Jika bilangan tersebut menggunakan tanda positif (+) atau (-), maka disebut SIGNED. Sebaliknya bila tanpa tanda apapun disebut UNSIGNED. Karena tanda positif (+) dapat diabaikan penulisannya maka pada bilangan yang bernilai positif disebut UNSIGNED.
- String/Character Values adalah semua karakter (atau teks) yang penulisannya selalu diapit oleh tanda kutip baik kutip tunggal (‘) maupun kutip ganda (“). Hal ini tidak hanya berlaku pada huruf alfabet saja tetapi angka yang ditulis dengan tanda kutip pun akan menjadi karakter atau string.
- Date and Time Values yaitu tanggal dan waktu. Untuk jenis data tanggal dan waktu format standar (default) penulisan tanggalnya adalah “tahun-bulan-tanggal”, Misalnya untuk 22 Januari 2001 dituliskan “2002-01-22”. Untuk penulisan waktu, formatnya adalah “jam-menit-detik”. Contoh, “13:55:07”. Data tanggal dan waktu bisa digabung penulisannya menjadi “2002-01-22 13:55:07”.
- NULL. NULL sebenarnya bukan data, tapi dia mewakili sesuatu yang “tidak pasti”, “tidak diketahui” atau “belum ada nilainya”. Sebagai contoh dalam kehidupan sehari-hari Anda melakukan suatu survei berapa jumlah pengguna sistem operasi LINUX dan Windows di Indonesia. Selama survei belum tuntas maka data pastinya belum dapat diketahui. Oleh sebab itu, data tersebut bisa diwakili dengan NULL, alias belum diketahui.