Thursday, November 6, 2008

MySQL Data Types

Ada tiga tipe data yang digunakan MySQL:
1. Numeric (Integer/Numbers/Money) / Bilangan
2. String (Text)
3. Date (Dates and Time)

Bilangan / Numeric
UNSIGNED adalah bilangan tanpa tanda - didepannya

TINYINT
1 byte
bilangan bulat / integer dengan range -128 ~ 127
range UNSIGNED adalah 0 ~ 255
SMALLINT
2 byte
bilangan bulat / integer dengan range -32768 ~ 32767
range UNSIGNED adalah 0 ~ 65535
MEDIUMINT
3 byte
bilangan bulat / integer dengan range -8388608 ~ 8388607
range UNSIGNED adalah 0 ~ 16777215
INT
INTEGER
4 byte
bilangan bulat / integer dengan range -2147683648 ~ 2147683647
range UNSIGNED adalah 0 ~ 4294967295
BIGINT
8 byte
bilangan bulat / integer dengan range -9223372036854775808 to 9223372036854775807
range UNSIGNED adalah 0 ~ 184467440737079551615
FLOAT
4 byte
bilangan pecahan / floating point presisi tunggal
tidak dapat bersifat UNSIGNED
REAL
DOUBLE
DOUBLE PRECISION
8 byte
bilangan pecahan / floating point presisi ganda
tidak dapat bersifat UNSIGNED
NUMERIC(M,D)
DECIMAL(M,D)
M byte
bilangan pecahan / floating point yang disimpan sebagai string
tidak dapat bersifat UNSIGNED


Karakter / String
CHAR(x)
string dengan lebar tetap
range dari x adalah 1 ~ 255
VARCHAR(x)
string dengan lebar bervariasi
range dari x adalah 1 ~ 255
TINYTEXT
255 karakter / 255 byte
case insensitive
TEXT
65535 karakter / 64K byte
case insensitive
MEDIUMTEXT
1677215 karakter / 16M byte
case insensitive
LONGTEXT
4294967295 karakter / 4G byte
case insensitive
TINYBLOB
karakter / 255 byte
case sensitive
BLOB
karakter / 64K byte
case sensitive
MEDIUMBLOB
1677215 karakter / 16M byte
case sensitive
LONGBLOB
4294967295 karakter / 4G byte
case sensitive
ENUM('nilai1','nilai2',...)
sebuah enumerasi, yang hanya memiliki sebuah nilai dari daftar nilai, maximum 65535 nilai
SET('nilai1','nilai2',...)
sebuat set, yang memiliki 0 atau lebih nilai yang harus dipilih dari daftar nilai, maximum memiliki 64 anggota


Tanggal dan Jam / Dates and Time
DATE
tanggal dengan range '1000-01-01' sampai dengan '9999-12-31'
DATE dalam format "YYYY-MM-DD"
TIME
jam dengan range '-838:59:59' sampai '838:59:59'
TIME format adalah "HH:MM:SS"
DATETIME
kombinasi tanggal dan jam dengan range '1000-01-01 00:00:00' sampai dengan '9999-12-31 23:59:59'
DATETIME format adalah "YYYY-MM-DD HH:MM:SS"
TIMESTAMP
kombinasi tanggal dan jam dengan range '1970-01-01 00:00:00' sampai dengan tahun 2037
TIMESTAMP format adalah "YYYY-MM-DD HH:MM:SS"
YEAR
4 digit dengan range 1901 dan 2155
YEAR format adalah "YYYY"