Rabu, 09 Februari 2011

Type - type Data di My SQL

MySQL merupakan salah satu dari database engine yang sering bangget aku pakai dalam membuat aplikasi. Kenapa MySQL?? Karena kebetulan MySQL punya versi gratiiiiiis, alias tanpa lisence. (jiwa gratisan mode on :nyengir:)

Nah, saat kita akan merancang sebuah aplikasi, tentu salah satu tahap pentingnya adalah merancang dan membuat database (meskipun ada sih, aplikasi yg g butuh database..he he..). Proses perancangan database dimulai dari menentukan entity-entity yang akan digunakan dalam aplikasi tersebut, yang nantinya akan menentukan tabel-tabel yang ada dan relational di antara tabel-tabel tersebut (koq, malah jadi kuliah SBD y?!). Disini kita tidak akan berpanjang lebar tentang perancangan database (mungkin bisa dibahas di lain waktu, kl ad yang request..^^), tapi membahas mengenai tipe data yang dipakai di MySQL. Pengetahuan tentang tipe data sangat diperlukan dalam perancangan database, agar setiap data bisa ditampung dengan tepat, sesuai dengan kebutuhan sistem dari aplikasi yang akan dibuat, serta tidak memboroskan ruang di dalam database.

Nah, ini dia tipe-tipe data di MySQL :




  • TINYINT[(M)] [UNSIGNED] [ZEROFILL]

    Integer yang sangat kecil jangkauan nilainya, yaitu -128 hingga 127. Jangkauan unsigned adalah 0 hingga 255.
  • SMALLINT[(M)] [UNSIGNED] [ZEROFILL]

    Integer yang kecil jangkauan nilainya, yaitu -32768 hingga 32767. Jangkauan unsigned adalah 0 hinga 65535.
  • MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]

    Integer tingkat menengah. Jangkauan nilainya adalah -8388608 hingga 8388607. Jangkauan unsigned adalah 0 hingga 16777215.
  • INT atau INTEGER [(M)] [UNSIGNED] [ZEROFILL]

    Integer yang berukuran normal. Jangkauan nilainya adalah -2147483648 hingga 2147483647. Jangkauan unsigned adalah 0 hingga 4294967295.
  • BIGINT[(M)] [UNSIGNED] [ZEROFILL]

    Integer berukuran besar. Jangkauan nilainya adalah -9223372036854775808 hingga 9223372036854775807. Jangkauan unsigned adalah 0 hingga 18446744073709551615.
  • FLOAT[(M,D)] [ZEROFILL]

    Bilangan floating-point presisi tunggal. Tidak dapat bersifat unsigned. Nilai yang diijinkan adalah -3.402823466E+38 hingga -1.175494351E-38 untuk nilai negatif, 0, and 1.175494351E-38 hingga 3.402823466E+38 untuk nilai positif.
  • DOUBLE atau DOUBEL PRECISION atau REAL[(M,D)] [ZEROFILL]

    Bilangan floating-point presisi ganda. Tidak dapat bersifat unsigned. Nilai yang diijinkan adalah -1.7976931348623157E+308 hingga -2.2250738585072014E-308 untuk nilai negatif, 0, dan 2.2250738585072014E-308 hingga 1.7976931348623157E+308 untuk nilai positif.
  • DECIMAL atau NUMERIC [(M[,D])] [ZEROFILL]

    Bilangan floating-point yang “npacked”. Tidak dapat bersifat unsigned. Memiliki sifat mirip dengan CHAR. Kata “unpacked” berarti bilangan disimpan sebagai string, menggunakan satu karakter untuk setiap digitnya. Jangkauan nilai dari DECIMAL sama dengan DOUBLE, tetapi juga tergantung dari nilai atribut M dan D yang disertakan. Jika D tidak diisi akan dianggap 0. Jika M tidak diisi maka akan dianggap 10. Sejak MySQL 3.22 nilai M harus termasuk ruang yang ditempati oleh angka di belakang koma dan tanda + atau -.
  • DATE

    Sebuah tanggal. MySQL menampilkan tanggal dalam format ‘YYYY-MM-DD’. Jangkauan nilainya adalah ’1000-01-01′ hingga ’9999-12-31′.
  • DATETIME

    Sebuah kombinasi dari waktu (jam) dan tanggal. MySQL menampilkan waktu dan tanggal dalam format ‘YYYY-MM-DD HH:MM:SS’. Jangkauan nilainya adalah ’1000-01-01 00:00:00′ hingga ’9999-12-31 23:59:59′.
  • TIMESTAMP[(M)]

    Sebuah timestamp. Jangkauannya adalah dari ’1970-01-01 00:00:00′ hingga suatu waktu di tahun 2037. MySQL menampilkan tipe data TIMESTAMP dalam format YYYYMMDDHHMMSS, YYMMDDHHMMSS, YYYYMMDD, atau YYMMDD, tergantung dari nilai M, apakah 14 (atau tidak ditulis), 12, 8, atau 6.
  • TIME

    Tipe data waktu. Jangkauannya adalah ‘-838:59:59′ hingga ’838:59:59′. MySQL menampilkan TIME dalam format ‘HH:MM:SS’.
  • YEAR[(2|4)]

    Angka tahun, dalam format 2- atau 4-digit (default adalah 4-digit). Nilai yang mungkin adalah 1901 hingga 2155, 0000 pada format 4-digit, dan 1970-2069 pada format 2-digit (70-69).
  • CHAR(M) [BINARY]

    String yang memiliki lebar tetap. Nilai M adalah dari 1 hingga 255 karakter. Jika ada sisa, maka sisa tersebut diisi dengan spasi (misalnya nilai M adalah 10, tapi data yang disimpan hanya memiliki 7 karakter, maka 3 karakter sisanya diisi dengan spasi). Spasi ini akan dihilangkan apabila data dipanggil. Nilai dari CHAR akan disortir dan diperbandingkan secara case-insensitive menurut default character set yang tersedia, kecuali bila atribut BINARY disertakan.
  • VARCHAR(M) [BINARY]

    String dengan lebar bervariasi. Nilai M adalah dari 1 hingga 255 karakter. Jika nilai M adalah 10 sedangkan data yang disimpan hanya terdiri dari 5 karakter, maka lebar data tersebut hanya 5 karakter saja, tidak ada tambahan spasi.
  • TINYBLOB atau TINYTEXT

    Sebuah BLOB (semacam catatan) atau TEXT dengan lebar maksimum 255 (2^8 – 1) karakter.
  • BLOB atau TEXT

    Sebuah BLOB atau TEXT dengan lebar maksimum 65535 (2^16 – 1) karakter.
  • MEDIUMBLOB atau MEDIUMTEXT

    Sebuah BLOB atau TEXT dengan lebar maksimum 16777215 (2^24 – 1) karakter.
  • LONGBLOB atau LONGTEXT

    Sebuah BLOB atau TEXT dengan lebar maksimum 4294967295 (2^32 – 1) karakter.

**keterangan :

- Atribut yang diberi tanda ‘[' dan ']‘ bersifat optional, boleh dipake boleh tidak

- M, menunjukkan lebar karakter maksimum. Nilai M maksimum adalah 255.

- D, menunjukkan jumlah angka di belakang koma. Nilai maksimum D adalah 30 tetapi dibatasi oleh nilai M, yaitu tidak boleh lebih besar daripada M-2.

- Jika atribut ZEROFILL disertakan, MySQL akan otomatis menambahkan atribut UNSIGNED.

- UNSIGNED adalah bilangan tanpa tanda di depannya (misalnya tanda negatif)

Hum…, mungkin belum semua tipe data di MySQL yang tertulis, namun semua yang ada disini merupakan tipe data umum yang seriiing dipakai. (tipe data yang blum nongol cm dikit oq, lain waktu dilengkapin..he he)

Kalo’ kita udah tau tipe data yang mau kita pakai, seperti range dan sifatnya, tentu kita tidak akan salah pilih kan?! ^^v

Tidak ada komentar:

Posting Komentar