Nama : Wahyu Rizki Destiawan NPM : 5C414150
Kelas : 1IA10 No.Absen : 48
Tipe-Tipe Data 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.
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.
Pada tipe-tipe data
MySQL terdapat beberapa atribut yang memiliki arti sebagai berikut:
1. M, menunjukkan lebar karakter maksimum. Nilai M
maksimum adalah 255.
2. 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.
3. 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
|
Keterangan
|
Ukuran
|
|
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
|
|
5.
|
|
INTEGER [(M)]
[UNSIGNED] [ZEROFILL]
|
Sama dengan INT.
|
|
|
6.
|
BIGINT
|
BIGINT [(M)]
[UNSIGNED] [ZEROFILL]
|
Digunakan untuk
menyimpan data bilangan bulat positif dan negatif .
Jangkauan
untuk bilangan bertanda -9223372036854775808 sampai dengan
9223372036854775807 dan untuk yang tidak bertanda 0 sampai dengan
184467440737079551615 |
8 byte.
|
|
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.
|
|
11.
|
DECIMAL
|
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
|
|
12.
|
|
NUMERIC [(M,D)]
[ZEROFILL]
|
Sama dengan
Decimal.
|
M byte.
|
2. Tipe data untuk tanggal dan jam
|
No
|
Tipe
Data |
Bentuk Dasar
Penulisan
|
Keterangan
|
Ukuran
|
|
1.
|
DATETIME
|
|
Kombinasi tanggal
dan waktu
dengan jangkauan dari ‘1000-01-01 00:00:00’ sampai dengan ‘9999-12-31 23:59:59’ |
8 byte.
|
|
2.
|
DATE
|
|
Kombinasi tanggal
dan waktu
dengan jangkauan dari ‘1000-01-01’ sampai dengan ‘9999-12-31 ’ |
8 byte.
|
|
3.
|
TIMESTAMP
|
TIMESTAMP [(M)]
|
Kombinasi tanggal
dan waktu
dengan jangkauan dari ‘1970-01-01’ sampai dengan ‘2037 ’ |
4 byte.
|
|
4.
|
TIME
|
|
Digunakan
untukmenyimpan waktu dengan jangkauan dari
-838:59:59 sampai dengan 838:59:59 |
3 byte.
|
|
5.
|
YEAR
|
|
Digunakan untuk
menyimpan data tahun dari tanggal antara 1901 sampai dengan 2155
|
1 byte
|
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-insensitive menurut
default character set yang tersedia, kecuali bila atribut BINARY disertakan.
|
M byte.
|
|
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.
|
Sumber : Google
Tidak ada komentar:
Posting Komentar