Anda di halaman 1dari 10

Tipe data pada MySQL

SQL memiliki kepanjangan Structure Query Language , digunakan sebagai antar muka dalam pengelolaan data. SQL merupkan bahasa komprehensip untuk basis data sehingga dibuat standar bahasa SQL oleh ANSI (American National Standart Institute) dan ISO (Internasional Standart Organization). Didalamnya terdapt perintah untuk pendefinisian data, melakukan query, dan update 1. Tipe Data Numerik Tipe data numerik berisi sekumpulan tipe data sejenis yang mampu menangani data-data numerik. Berikut ini beberapa tipe data yang digunakan dalam MySQL. Tabel 1.1 Daftar Tipe Data Numerik Bytes Keterangan Type TINYINT 1 SMALLINT 2 MEDIUMINT 3 INT 4 Type INT merupakan type yang sangat sering digunakan dalam pembuatan database, karena type ini dirasakan sangat cukup menampung dalam menangani data, yaitu mampu menyimpan data mulai dar i-2147483648 sampai 2147483647. Bentuk terbesar dalam menangani data Numerik, mampu menangani data mulai dari -9223372036854775808 sampai 9223372036854775807. Type ini merupakan bentuk numerik yang paling kecil dalam menangani data di dalamnya, yang dapat menangani data mulai dari anggka 128 sampai dengan 127. Memiliki kemampuan menyimpan data lebih besar dari TINYINT, yaitu mampu untuk menangani data mulai dari 32768 sampai dengan 32767. Mampu menangani data mulai dari -8388608 sampai dengan 8388607.

BIGINT 8

2. Tipe Data untuk Penanggalan dan Waktu Untuk menangani data-data yang berkaitan dengan waktu dan penanggalan, Anda dapat melihat beberapat tipe pada tabel berikut: Tabel 2.2 Daftar Tipe Data Tanggal dan Waktu

Keterangan Type DATETIME Bentuk ini dapat menyimpan dua buah bentuk type data sekaligus, yaitu penanggalan dan waktu. Bentuk yang dapat diciptakan oleh DATETIME adalah '0000-00-00 00:00:00'. '0000-00-00 merupakan bentuk penanggalan yang dimulai dari tahun, bulan, dan tanggal. Sedangkan 00:00:00 adalah tempat menyimpan waktu atau jam. Misalnya: 2004-06-22 08:15:45. Bentuk ini digunakan untuk menyimpan data penanggalan saja, dengan bentuk penulisan '0000-00-00'. Penggunaan ini mirip seperti pada DATETIME, hanya saja yang ditampilkan hanya penanggalan saja. Misalnya, 2004-06-22. Bentuk penanggalan dengan TIMESTAMP ditampilkan berjajar tanpa ada pembatasnya, dengan bentuk penulisan 00000000000000 . Bentuk TIME hanya digunakan untuk menyimpan data berbentuk jam. Yaitu dimulai dari tahun yang dibaca dari dua karakter terakhir dan selanjutnya diikuti bulan dan tanggal .bentuk penulisanya adalah '00:00:00' . pada prototype pewaktuan tersebut dapat dijabarkan bahwa 00 perma adalah jam yang diikuti menit dan detik. Contoh 08:35:55 . Bentuk yang paling sederhana adalah YEAR yang hanya menyimpan data berupa tahun saja. Ditulis secara lengkap 4 digit, misalnya: 2004 atau 1999 .

DATE

TIMESTAMP

TIME

YEAR

3. Tipe Data String Dengan menyesuaikan banyaknya data, MySQL telah membagi datanya menjadi beberapa tipe, sehingga penggunaannya dapat disesuaikan. Perhatikan tabel berikut: Tabel 3.3 Daftar Tipe Data String Bytes Type TINYTEXT 255 TINYBLOB 255 TEXT 65535 BLOB 65535 Keterangan Type ini merupakan bentuk terkecil dari data String, yang mampu manangani data sampai dengan 2^8-1 data . Bentuk TINYTEXT adalah bentuk yang sama dengan TINYBLOB , yaitu mampu menangani data sampai dengan 2^8-1 data . Bentuk TEXT salah satu bentuk type String yang mampu menangani data sampai dengan berukuran 2^16-1 (64K-1) data. Memiliki kemampuan sama dengan TEXT, yaitu sampai dengan 2^16-1 (64K-1) data.

MEDIUMTEXT 16777215 MEDIUMBLOB 16777215 LONGBLOB 4294967295

Dapat menyimpan data dengan ukuran cukup besar, sampai dengan 2^24-1 (16M-1) data . Bentuk MEDIUMTEXT dapat Anda ganti dengan bentuk data MEDIUMBLOB, yang mampu menyimpan data sampai dengan 2^24-1 (16M-1) data. Type data LONGBLOB adalah bentuk Type data yang paling besar dalam menangani data. Data yang disimpan sampai dengan berukuran Giga Byte. Type ini memiliki batasan penyimpanan sampai dengan 2^32-1 (4G-1) data.

Tabel 4.4 Daftar Tipe Data String yang Sering Digunakan Keterangan Type VARCHAR Bentuk ini dapat menyimpan data sampai dengan 225 karakter. Anda dapat menggunakan type ini apabila data yang dimasukan tidak lebih dari batasan tersebut. CHAR Bentuk CHAR hamper sama dengan VARCHAR, mampu menangani data sampai dengan 225 karakter. Namun, kedua type tersebut sangat signifikan dalam menyimpan data. Misalnya, Anda membuat kolom dengan Type VARCHAR(25). Meskipun Anda memasukan data kurang dari 25 digit, tetap dibaca sebanyak digit yang dimasukkan. Namun, jika Anda menggunakan type data CHAR(4), meskipun Anda memasukkan digit kurang dari 4, akan tetap dibaca 4 digit. ENUM Digunakan untuk validasi. Type data seperti ini, biasanya, kolom ditentukan terlebih dahulu. Misalnya, pada pembuatan kolom yang isinya mengenai golongan darah A, B, AB, dan O, bentuk penulisanya adalah ENUM(A,B,AB,O). Jika memasukkan data tidak sesuai criteria, akan terjadi kesalahan atau tidak bisa dibaca (kosong). SET Type data SET sebenarnya memiliki fungsi yang sama dengan type ENUM, yaitu dengan mendeklarasikan anggota dari isi kolom yang mungkin akan menjadi anggotanya.

Mengenal berbagai Tipe Data


Seringkali pada saat kita membuat sebuah database dan membuat fields yang ada didalamnya, kita kebingungan dalam memilih tipe data apa yang akan digunakan. Pada kesemapatan kali ini saya akan memberitahukan beberapa buah tipe data yang saya baca dari sebuah buku. Tipe data yang akan saya jelaskan berikut ini adalah tipe data yang terdapat pada MySQL. 1. Tipe data untuk bilangan No Tipe Data 1. TINYINT Keterangan Ukuran 1 byte. 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 2. SMALLINT Ukuran 2 byte. Bilangan bulat dengan jangkauan untuk bilangan bertanda -32768 sampai dengan 32767 dan untuk yang tidak bertanda 0 sampai dengan 65535 3. MEDIUMINT Ukuran 3 byte. Bilangan bulat dengan jangkauan untuk bilangan bertanda -8388608 sampai dengan 8388607 dan untuk yang tidak bertanda 0 sampai dengan 16777215 4. INT Ukuran 4 byte. Bilangan bulat dengan jangkauan untuk bilangan bertanda -2147483648 sampai dengan 2147483647 dan untuk yang tidak bertanda 0 sampai dengan 4294967295 5. INTEGER Sama dengan INT. 6. BIGINT Ukuran 8 byte. Bilangan bulat dengan jangkauan untuk bilangan bertanda -9223372036854775808 sampai dengan 9223372036854775807 dan untuk yang tidak bertanda 0 sampai dengan 184467440737079551615 7. FLOAT Ukuran 4 byte. Biilangan pecahan. 8. DOUBLE Ukuran 8 byte. Bilangan pecahan. 9. DOUBLE Ukuran 8 byte. Bilangan pecahan berpresisi PRECISION ganda. 10. REAL Ukuran 8 byte. Sinonim dari DOUBLE. 11. DECIMAL(M,D) Ukuran M byte. Bilangan pecahan. Misalnya DECIMAL(5,2) dapat digunakan untuk menyimpan bilangan 99,99 sampai dengan 99,99 12. NUMERIC(M,D) Ukuran M byte. Sama dengan Decimal.

2. Tipe data untuk tanggal dan jam No Tipe Data 1. DATETIME Keterangan Ukuran 8 byte. Kombinasi tanggal dan jam dengan jangkauan dari 1000-01-01 00:00:00 sampai dengan 9999-12-31 23:59:59 Ukuran 8 byte. Kombinasi tanggal dan jam dengan jangkauan dari 1000-01-01 sampai dengan 9999-12-31 Ukuran 4 byte. Kombinasi tanggal dan jam dengan jangkauan dari 1970-01-01 sampai dengan 2037 Ukuran 3 byte.waktu dengan jangkauan dari -838:59:59 sampai dengan 838:59:59 Ukuran 1 byte. Data tahun antara 1901 sampai dengan 2155

2. DATE

3. TIMESTAMP 4. TIME 5. YEAR

3. Tipe data untuk karakter dan lain-lain No Tipe Data 1. CHAR(M) Keterangan Ukuran M byte, 1<=M<=255. Data string dengan panjang yang tetap. CHAR(1) cukup ditulis dengan CHAR. Ukuran L+1 byte dengan L<=M dan 1<=M<=255. Data string dengan panjang bervariasi tergantung datanya. L+1 byte, dengan L<28 . Tipe TEXT atau BLOB dengan panjang maksimum 255 karakter.

2. VARCHAR(M)

3. TINYBLOB, TINYTEXT 4. BLOB, TEXT 5. 6.

7. 8.

L+2 byte, dengan L<216 . Tipe TEXT atau BLOB dengan panjang maksimum 65535 karakter. MEDIUMBLOB, L+3 byte, dengan L<224. Tipe MEDIUMTEXT TEXT atau BLOB dengan panjang maksimum 1677215 karakter. LONGBLOB, L+4 byte, dengan L<232. Tipe LONGTEXT TEXT atau BLOB dengan panjang maksimum 4294967295 karakter. ENUM(nilai1,nilai2,..) Ukuran 1 atau 2 byte tergantungnilai enumerasinya maks 65535 nilai SET(nilai1,nilai2,..) Ukuran 1,2,3,4 atau 8 byte tergantung jumlah anggota himpunan maks 64 anggota.

Info
BLOB(Binary Large Object) merupakan tipe data yang biasa digunakan untuk menyimpan data berbentuk biner. Tipe data seperti LONGBLOB dapat digunakan untuk menyimpan gambar. 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.175494351E38 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 caseinsensitive 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);

Perintah tersebut di atas akan membuat tabel bernama stok dengan field-field sebagai berikut: Nama field Kode Nama Harga Tipe data Char(5) Varchar(20) Mediumint Unsigned Keterangan Kode barang biasanya memiliki jumlah karakter tetap, dalam contoh ini adalah 5. Nama barang kemungkinan besar memiliki jumlah karakter yang berbeda-beda, sehingga cocok menggunakan varchar. Harga tergantung dari jenis barangnya, pada contoh ini dianggap harga barang tertinggi di bawah 100 jutaan. Supplier biasanya juga dituliskan dalam kode tertentu yang jumlah karakternya tetap. Tanggal pembelian. Umumnya waktu pembelian tidak perlu disertakan, hanya tanggalnya saja.

Supplier Char(5) Tanggal Date

mysql> create table stok( -> kode char(5), -> nama varchar(20), -> harga mediumint unsigned, -> supplier char(5), -> tanggal date);

Anda mungkin juga menyukai