Tipe-Tipe Data MySQL
My SQL
MySQL adalah sebuah sistem manajemen database relasi yang bersifat terbuka (open source).
Terbuka maksudnya adalah MySQL boleh didownload oleh siapa saja, baik versi kode program aslinya
(source code program) maupun versi binernya (executable program) dan bisa digunakan secara gratis
baik untuk dimodifikasi sesuai dengan kebutuhan seseorang maupun sebagai suatu program aplikasi
komputer.
Sejarah MySQL yang merupakan hasil buah pikiran dari Michael Monty Widenius, David Axmark, dan Allan Larson
dimulai tahun 1995. Mereka bertiga kemudian mendirikan perusahaan bernama MySQL AB di Swedia. MySQL
memiliki kinerja, kecepatan proses, dan ketangguhan yang tidak kalah dibandingkan dengan database-database
besar lainnya yang komersil seperti ORACLE, Sybase, Unify dan sebagainya. Dengan bersemangatkan Open
Source, MySQL berkembang menjadi salah satu sistem manajemen database relasi terkemuka yang diakui secara
Internasional. MySQL menggunakan bahasa standar SQL (Structure Query Language) sebagai bahasa interaktif
dalam mengelola data. Perintah SQL sering juga disebut Query.
Tipe-Tipe Data My SQL
Secara umum tipe data pada MySQL dibagi menjadi 4 yaitu:
1.
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.
2.
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.
3.
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, [Link]. Data tanggal dan waktu bisa digabung penulisannya menjadi 2002-01-22
[Link].
4.
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.
Pada tipe-tipe data MySQL terdapat beberapa atribut yang memiliki arti sebagai berikut:
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.
Atribut yang diberi tanda [ dan ] berarti pemakaiannya adalah optional.
Jika atribut ZEROFILL disertakan, MySQL akan otomatis menambahkan atribut UNSIGNED.
UNSIGNED adalah bilangan tanpa tanda di depannya (misalnya tanda negatif).
Berikut tipe-tipe data yang didukung oleh MySQL, antara lain:
1. Tipe data untuk bilangan
No
Tipe Data
Bentuk Dasar
Penulisan
1.
TINYINT
TINYINT
[(M)]
[UNSIGNED]
[ZEROFILL]
Digunakan untuk menyimpan data bilangan
bulat positif dan negatif.
Bilangan bulat terkecil, dengan jangkauan
untuk bilangan bertanda -128 sampai dengan
127 dan untuk yang tidak bertanda 0 sampai
dengan 255. Bilangan tak bertanda ditandai
dengan kata UNSIGNED
1 byte
2.
SMALLINT
SMALLINT
[(M)]
[UNSIGNED]
[ZEROFILL]
Digunakan untuk menyimpan data bilangan
bulat positif dan negatif.
Jangkauan untuk bilangan bertanda -32768
sampai dengan 32767 dan untuk yang tidak
bertanda (jangkauan unsigned) 0 sampai
dengan 65535
2 byte
3.
MEDIUMNIT
MEDIUMINT
[(M)]
[UNSIGNED]
[ZEROFILL]
Digunakan untuk menyimpan data bilangan
bulat positif dan negatif.
Jangkauan untuk bilangan bertanda 8388608 sampai dengan 8388607 dan untuk
yang tidak bertanda (jangkauan unsigned) 0
sampai dengan 16777215
3 byte
4.
INT
INT [(M)]
[UNSIGNED]
[ZEROFILL]
Digunakan untuk menyimpan data bilangan
bulat positif dan negatif .
Jangkauan untuk bilangan bertanda 2147483648 sampai dengan 2147483647 dan
untuk yang tidak bertandan (jangkauan
usigned) 0 sampai dengan 4294967295
4 byte
INTEGER
[(M)]
[UNSIGNED]
[ZEROFILL]
Sama dengan INT.
BIGINT [(M)]
[UNSIGNED]
[ZEROFILL]
Digunakan untuk menyimpan data bilangan
bulat positif dan negatif .
Jangkauan untuk bilangan bertanda 9223372036854775808 sampai dengan
5.
6.
BIGINT
Keterangan
Ukuran
8 byte.
9223372036854775807 dan untuk yang
tidak bertanda 0 sampai dengan
184467440737079551615
7.
FLOAT
FLOAT
[(M,D)]
[ZEROFILL]
Digunakan untuk menyimpan data bilangan
pecahan positif dan negatif presisi tunggal.
Jangkauan: -3.402823466E+38 s/d 1.175494351E-38, 0, dan 1.175494351E-38
s/d 3.402823466E+38
4 byte
8.
DOUBLE
DOUBLE
[(M,D)]
[ZEROFILL]
Digunakan untuk menyimpan data bilangan
pecahan positif dan negatif 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.
8 byte
9.
DOUBLE
PRECISION
[(M,D)]
[ZEROFILL]
Bilangan pecahan berpresisi
ganda.
8 byte.
10.
REAL [(M,D)]
[ZEROFILL]
Sinonim dari DOUBLE.
8 byte.
DECIMAL
[(M,D)]
[ZEROFILL]
Digunakan untuk menyimpan data bilangan
pecahan positif dan negatif.
Misalnya DECIMAL(5,2) dapat digunakan
untuk menyimpan bilangan -99,99 sampai
dengan
99,99
M byte
NUMERIC
[(M,D)]
[ZEROFILL]
Sama dengan Decimal.
M byte.
11.
12.
DECIMAL
2. Tipe data untuk tanggal dan jam
No
Tipe
Data
1.
DATETIME
2.
DATE
3.
TIMESTAMP
4.
5.
Bentuk Dasar
Penulisan
Keterangan
Ukuran
Kombinasi tanggal dan waktu
dengan jangkauan dari 1000-01-01
[Link] sampai dengan 9999-12-31
[Link]
8 byte.
Kombinasi tanggal dan waktu
dengan jangkauan dari 1000-01-01
sampai dengan 9999-12-31
8 byte.
Kombinasi tanggal dan waktu
dengan jangkauan dari 1970-01-01
sampai dengan 2037
4 byte.
TIME
Digunakan untukmenyimpan waktu
dengan jangkauan dari
-[Link] sampai dengan [Link]
3 byte.
YEAR
Digunakan untuk menyimpan data tahun
dari tanggal antara 1901 sampai dengan
2155
1 byte
TIMESTAMP
[(M)]
3. Tipe data untuk karakter dan lain-lain
No
Tipe
Data
Bentuk Dasar
Penulisan
Keterangan
Ukuran
1.
CHAR
CHAR(M) [BINARY]
Data string dengan panjang yang
tetap. CHAR(1) cukup ditulis
dengan CHAR. 1<=M<=255, 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-
M byte.
insensitive menurut default
character set yang tersedia,
kecuali bila atribut BINARY
disertakan.
2.
VARCHAR
VARCHAR (M)
[BINARY]
Ukuran L+1 byte dengan L<=M dan
1<=M<=255. Data string dengan
panjang bervariasi tergantung
datanya. 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.
L+1 byte
3.
TINYBLOB,
TINYTEXT
L+1 byte, dengan L<28 . Tipe
TEXT atau BLOB dengan panjang
maksimum 255 karakter.
L+1 byte
4.
BLOB,
TEXT
L+2 byte, dengan L<216 . Tipe
TEXT atau BLOB dengan panjang
maksimum 65535 karakter.
L+2 byte
5.
MEDIUMBLOB,
MEDIUMTEXT
L+3 byte, dengan L<224. Tipe
TEXT atau BLOB dengan panjang
maksimum 1677215 karakter.
L+3 byte
6.
LONGBLOB,
LONGTEXT
L+4 byte, dengan L<232. Tipe
TEXT atau BLOB dengan panjang
maksimum 4294967295 karakter.
L+4 byte
7.
ENUM
ENUM(nilai1,nilai2,..)
Ukuran 1 atau 2 byte tergantung
nilai
enumerasinya maks 65535 nilai
1 atau 2
byte
8.
SET
SET(nilai1,nilai2,..)
Ukuran 1,2,3,4 atau 8 byte
tergantung jumlah anggota
himpunan maks 64 anggota.
1,2,3,4
atau 8
byte
Tipe-tipe yang didukung MySQL di atas dapat menjadi pilihan dalam penyusunan database. Sebagai
contoh, jika kita hendak menyimpan data jumlah suatu stok barang yang tidak melebihi angka 200
misalnya, maka sebaiknya memilih tipe data TINYINT yang diberi atribut UNSIGNED. Alasannya
adalah jumlah stok tidak melebihi 200 dan tidak mungkin lebih kecil dari 0, dan tipe data TINYINT
memiliki jangkauan 0 hingga 255, jadi memenuhi syarat untuk digunakan.
Contoh yang lain, misalnya kita hendak membuat database nomor telpon dari teman-teman kita.
Memang nomor telpon seluruhnya terdiri dari angka, namun nampaknya tidak tepat bila disimpan dalam
tipe data INT (atau bahkan BIGINT bila hendak menyimpan nomor handphone). Lebih baik dimasukkan
ke dalam CHAR atau VARCHAR dengan M adalah 12. Mengapa 12? Karena nomor handphone terpanjang
terdiri dari 12 digit. Sedangkan nomor telpon rumah terpanjang adalah 8 digit ditambah kode area
terpanjang 4 digit, jadi angka 12 sangat pas.
Lalu bagaimana penerapannya dalam operasi MySQL? Misalnya kita hendak membuat tabel stok barang
dengan masing-masing field adalah kode barang, nama barang, harga barang, supplier, dan tanggal beli,
maka kemungkinan perintah yang harus ditulis adalah sebagai berikut:
MySQL> create table stok
-> kode char(5),
-> nama varchar(20),
-> harga mediumint unsigned,
-> supplier char(5),
-> tanggal date);
Perintah tersebut di atas akan membuat tabel bernama stok dengan field-field sebagai berikut:
Nama
field
Tipe data
Keterangan
Kode
Char(5)
Kode barang biasanya memiliki jumlah karakter tetap, dalam
contoh ini adalah 5.
Nama
Varchar(20)
Nama barang kemungkinan besar memiliki jumlah karakter yang
berbeda-beda, sehingga cocok menggunakan varchar.
Harga
Mediumint
Unsigned
Harga tergantung dari jenis barangnya, pada contoh ini dianggap
harga barang tertinggi di bawah 100 jutaan.
Demikian penjelasan singkat mengenai MYSQL serta Tipe-Tipe Data yang Didukung oleh MYSQL.
Semoga bermanfaat dan menambah pengetahuan Anda...