Monday, November 17, 2008

Calculate the Difference between Two Dates

Use the DATEDIFF(date1, date2) function as shown below if you want to calculate the diffrence between 2 dates:


SELECT DATEDIFF(DATE('1997-02-28'), DATE('1997-03-01'))
FROM DUAL;
-1

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"

Array

Array adalah variable yang dapat menyimpan lebih dari satu nilai/elemen. Elemen dapat diakses dengan menggunakan 2 macam index, index numeric dan index assosiative.

Di index numeric, variabel array yang dihasilkan akan berindeks angka mulai dari 0 untuk kolom pertama:

$data[0]
$data[1]
$data[2]
Sedang index assositive menggunakan nama untuk menandai tiap elemen:
$data[nama]
$data[alamat]
$data[kota]

Operator

Arithmetic Operators

operator
penjelasan
contoh
hasil
+
penjumlahan
x=5
x+2
7
-
penguranganx=5
x-2
3
*
perkalianx=5
x*5
2.5
/
pembagian10/25
%
modulus/sisa pembagian5%2
10%2
1
0
++
penambahan 1/incrementx=5
x++
6
--
pengurangan 1/decrementx=5
x--
4


Assignment Operators
operator
contoh
sama dengan
=
x=y
x=y
+=
x+=y
x=x+y
-=
x-=y
x=x-y
*=
x*=y
x=x*y
/=
x/=y
x=x/y
.=
x.=y
x=x.y
%=
x%=y
x=x%y


Comparison Operators

operatorpenjelasanhasil
==sama dengantrue jika 5==5
!=tidak sama denganfalse jika 5==5
>lebih besar daripadatrue jika 7>5
<lebih kecil daripadatrue jika 5<7
>=lebih besar atau sama dengantrue jika 7>=5
<=lebih kecil atau sama dengantrue jika <=7


Logical operators
operatorpenjelasancontoh
&&dantrue, jika:
x=5
y=2
(x < 10 && y > 1)
||ataufalse, jika:
x=5
y=2
(x==7 || y==3)
!tidaktrue, jika:
x=5
y=2
!(x==y)