Pada
artikel ini kita akan membahas tipe - tipe data yang didukung oleh MySQL.
Pemilihan tipe data merupakan suatu hal yang cukup penting dalam mengelola
server. Salah satu sebabnya adalah berkaitan dengan ruang di harddisk dan
memori yang akan “digunakan” oleh data-data tersebut.
Berikut
ini akan diberikan tipe-tipe data yang didukung oleh MySQL yang terambil dari
dokumentasi MySQL. Tipe - tipe data ini diberikan dalam bentuk yang siap
dituliskan pada sintaks-sintaks MySQL, misalnya Create Table. Pada tipe-tipe
data tersebut 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).
Inilah
tipe-tipe data tersebut:
- 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[(M)] [UNSIGNED] [ZEROFILL]
Integer yang berukuran normal.
Jangkauan nilainya adalah -2147483648 hingga 2147483647. Jangkauan unsigned
adalah 0 hingga 4294967295.
- INTEGER[(M)] [UNSIGNED] [ZEROFILL]
Sama dengan INT.
- BIGINT[(M)] [UNSIGNED] [ZEROFILL]
Integer berukuran besar.
Jangkauan nilainya adalah -9223372036854775808 hingga 9223372036854775807.
Jangkauan unsigned adalah 0 hingga 18446744073709551615.
- FLOAT(precision) [ZEROFILL]
Bilangan floating-point. Tidak
dapat bersifat unsigned. Nilai atribut precision adalah <=24 untuk bilangan
floating-point presisi tunggal dan di antara 25 dan 53 untuk bilangan
floating-point presisi ganda.
- 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[(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.
- DOUBLE PRECISION[(M,D)] [ZEROFILL] dan REAL[(M,D)] [ZEROFILL]
Keduanya sama dengan DOUBLE.
- DECIMAL[(M[,D])] [ZEROFILL]
Bilangan floating-point yang
“unpacked”. Tidak dapat bersifat unsigned. Memiliki sifat mirit 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 dai 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 -.
- NUMERIC(M,D) [ZEROFILL]
Sama dengan DECIMAL.
- 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 dan TINYTEXT
Sebuah BLOB (semacam catatan)
atau TEXT dengan lebar maksimum 255 (2^8 - 1) karakter.
- BLOB dan TEXT
Sebuah BLOB atau TEXT dengan
lebar maksimum 65535 (2^16 - 1) karakter.
- MEDIUMBLOB dan MEDIUMTEXT
Sebuah BLOB atau TEXT dengan
lebar maksimum 16777215 (2^24 - 1) karakter.
- LONGBLOB dan LONGTEXT
Sebuah BLOB atau TEXT dengan
lebar maksimum 4294967295 (2^32 - 1) karakter.
- ENUM('value1','value2',...)
Sebuah enumerasi, yaitu objek
string yang hanya dapat memiliki sebuah nilai, dipilih dari daftar nilai
'value1', 'value2', ..., NULL atau nilai special "" error. Sebuah
ENUM maksimum dapat memiliki 65535 jenis nilai.
- SET('value1','value2',...)
Sebuah set, yaitu objek string
yang dapat memiliki 0 nilai atau lebih, yang harus dipilih dari daftar nilai
'value1', 'value2', .... Sebuah SET maksimum dapat memiliki 64 anggota.
Nah, dengan mengenal tipe-tipe data yang didukung oleh MySQL, Anda dapat dengan tepat memilih tipe data yang Anda butuhkan dalam menyusun sebuah database.
Misalnya
Anda hendak menyimpan data jumlah suatu stok barang yang tidak melebihi angka
200 misalnya, maka sebaiknya Anda 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 Anda hendak membuat database nomor telpon dari teman-teman
Anda. 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 Anda 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);
-> 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.
|
Supplier
|
Char(5)
|
Supplier
biasanya juga dituliskan dalam kode tertentu yang jumlah karakternya tetap.
|
Tanggal
|
Date
|
Tanggal
pembelian. Umumnya waktu pembelian tidak perlu disertakan, hanya tanggalnya
saja.
|
Nah,
sudah dijelaskan diatas tipe - tipe operasi data Database MySQL server, selamat
mencoba :D. Artikel selanjutnya akan membahas Implementasi koneksi PHP ke
Database MySQL.
Penjelasannya bagus banget :)
BalasHapusdi tunggu artikel selanjutnya min
KONTES SEO
TOTAL HADIAH 38 JUTA
Daftar Kontes Seo Sekarang
Daftar
Capsa Online
Game Bandarq
Domino Online
Poker dan Domino99
CONTOH ARTIKEL KONTES SEO