Anda di halaman 1dari 15

53

FUNGSI MySQL

Setiap fungsi dalam MySQL diawali dengan SELECT


Fungsi-fungsi dalam MySQL dibedakan menjadi :
1. Fungsi sistem
2. Fungsi agregrat
3. Fungsi aritmetika
4. Fungsi String
5. Fungsi tanggal
6. Fungsi logika

I. FUNGSI SISTEM

a) DATABASE()
Fungsi ini digunakan unutk memberikan informasi tentang database yang sedang
digunakan (aktif)
B) LAST_INSERT_ID()
Digunakan untuk mengetahui masukan otomatis pada kolom yang mengandung
type data auto_increment.
Coba praktekan memasukan data pada tabel yang mengandung auto_increment.
Masukan hanya nama barang saja. Misal :

Disana terlihat bahwa nilai nota 100002 adalah nilai yang otomatis dimasukan

C) SESSION_USER()
Untuk mengetahui siapa (user) yang sedang masuk ke dalam database server.

Agus Ramdhani Nugraha, MT.


STMIK DCI Tasikmalaya
54

D) SYSTEM_USER()
Sama dengan SESSION_USER()
E) USER()
Sama dengan SESSION_USER() dan SYSTEM_USER()
F) VERSION()
Untuk melihat versi server MySQL yang sedang digunakan.
Kemungkinan versi lokal dan versi server berbeda.
Cek versi lokal anda berapa dan cek juga versi server.
Bagaimana mengetahui bahwa itu versi lokal dan versi server ?
G) BECHMARRK(count, “ekspresi”)
Mengerjakan perintah pada ekspresi sebanyak count kali
Misal :

Pada perintah yang pertama terlihat bahwa 100 juta kali perintah select * from
authors bisa ditangani oleh server mysql selama 2,13 detik dan 1 milyar kali
perintah select * from authors selama 19,48 detik dengan spesifikasi komputer :
Prosesor mobile AMD Atlhon 4 1,1 GHz, 256 DDRAM shared 64 for VGA on
Board dan 30 GB Hardisk.
Jika server mysql merupakan server database yang digunakan pada web based hal
ini bisa dikatakan bahwa jika ada 100 juta komputer remote/client yang mengakses
tabel authors dengan query select * from authors lewat web maka server bisa
menangani query dalam 2,13 detik. Itulah mengapa yahoo.com dengan jutaan
pengguna bisa ditangani querynya terhadap database di yahoo.com.

Agus Ramdhani Nugraha, MT.


STMIK DCI Tasikmalaya
55

H) LOAD_FILE(nama_file)
Digunakan untuk membuka file dan memberikan isinya sebagai string. Perintah ini
juga bisa digunakan untuk memasukan data berupa gambar. Syaratnya bahwa type
data untuk gambar adalah longblob.

II. FUNGSI AGREGRAT

a) AVG(ekspresi)
Digunakan untuk mencari rata-rata nilai dalam suatu kolom dari suatu tabel atau
ekspresi
Sintaksnya adalah sbb
SELECT AVG(kolom yang bertype data numerik) FROM <namatabel>;
Gunakan tabel eb

Gunakan as untuk mengganti nama kolom.

B) COUNT(x)
Digunakan untuk mencari jumlah baris dari suatu kolom atau tabel

Agus Ramdhani Nugraha, MT.


STMIK DCI Tasikmalaya
56

c) MAX(ekpresi)
Digunakan untuk mencari nilai maksimum dari suatu kolom atau tabel atau
ekspresi
Lihat di kolom lat1 pada tabel eb di database ike.

d) MIN(ekpresi)

Kebalikan dari MAX

e) STD(ekpresi) dan STDDEV(ekpresi)


Digunakan untuk mengetahhui nilai standar deviasi dari suatu kolom

Hasil perhitungan dengan MS Exel adalah sbb = 26,477173


Latihan anda :
Kenapa terjadi perbedaan spt diatas.
Gunakan rumus yang ada di fasilitas bantuan exel, ketikan saja di menu help
“STDEV”.

f) SUM(ekpresi)
Digunakan untuk menjumlahkan kolom tertentu

Agus Ramdhani Nugraha, MT.


STMIK DCI Tasikmalaya
57

III. FUNGSI ARITMETIKA

1) Penjumlahan

2) Pengurangan
3) Perkalian
4) Pembagian
5) Pembagian sisa (%)

Karena 3 kali 33 sama dengan 99 maka sisanya 1


6) ABS(x)
Untuk mendapatkan nilai absolut
Select abs(-0.98987);
Hasilnya : 0,98987
7) ACOS(x)
8) ASIN(x)
9) ATAN(x)
10) ATAN2(x)
11) BIN(x)

Agus Ramdhani Nugraha, MT.


STMIK DCI Tasikmalaya
58

Mendapatkan nilai biner dari nilai(x). Ingat rumus


128 64 32 16 8 4 2 1
0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1
Cara menghitung dengan penjumlahan.
Misal untuk angka 12 = 8 + 4 (adakah kemungkinan operasi penambahan yang
lain)
8 ya, 4 ya, 2 tidak 1 tidak
Nilai biner = 1100

12) CEILING(x)
Pembulatan keatas dari nilai x
Misal = 5,8 maka akan dibulatkan menjadi 6
13) CONV(x, daribasis, kebasis)
Nilai minimum untuk base adalah 2 dan maksimumnya adalah 16
mysql> SELECT CONV('a',16,2);
-> '1010'
mysql> SELECT CONV('6E',18,8);
-> '172'
mysql> SELECT CONV(-17,10,-18);
-> '-H'
mysql> SELECT CONV(10+'10'+'10'+0xa,10,10);
-> '40'
14) COS(x)
15) COT(x)
16) DEGRESS(x)
Menentukan besarnya sudut x dalam radian
17) EXP(x)
Menghitung nilai ex
18) FLOOR(x)
Kebalikan dari ceiling
19) FORMAT(num, dec)
Misal nilai num adalah 498.897 dan nilai dec adalah 2
Hasilnya adalah 498.90
20) GREATEST(x,y,....)
Memilih nilai terbesar dari daftar bilangan yang didefinisikan
21) HEX(x)
Mencari niali keksadesimal dari nilai x
15 = F
22) LEAST(x,y,z,....)
Kebalikan dari greatest

Agus Ramdhani Nugraha, MT.


STMIK DCI Tasikmalaya
59

23) LOG(x)
24) LOG10(x)
25) MOD(x,y)
sama dengan pembagian sisa
26) OCT(x)
27) PI()
Mendapatkan nilai konstanta PI
Select PI();
28) POW(x,y)
menghitung x pangkat y
29) POWER(x,y)
Sama dengan POW
30) RADIANS(x)
Kebalikan dari degress
31) RAND()
Menhasilkan bilangan random
Select rand();
32) ROUND(x)
Membulatkan bilangan x menjadi bilangan bulat (integer)
33) ROUND(x,y)
Menghitung bilangan x sampai dengan posisi desimal y tertentu
Misal bil desimal 45.98978 dibulatkan 3
Hasilnya 45.990
34) SIGN(x)
Menghasilkan nilai -1 jika x bernilai negatif, 0 jika x bernilai 0 dan 1 jika x bernilai
positif
35) SIN(x)
36) SQRT(x)
Akar kuadrat dari x
37) TAN(x)
38) TRUNCATE(x,y)
Sama dengan round tetapi tidak dibulatkan
Misal bil desimal 45.98978 dibulatkan 3
Hasilnya 45.989

IV. Fungsi String


1) ASCII(x)
Digunakan untuk mendapatkan nilai code ascii dari variable x
Select ascii(‘a’);
hasilnya : 97
select ascii('A');
Hasilnya : 62
2) CHAR(x,y,z,....)
Untuk mendapatkan karakter dari kode ascii
Select char(97);
Hasilnya = a
SELECT CHAR(77,121,83,81,'76');
Hasilnya ?????
3) CHARACTER_LENGHT, CHAR_LENGTH
Untuk mendapatkan panjang karakter dari nilai string yang didefinisikan

Agus Ramdhani Nugraha, MT.


STMIK DCI Tasikmalaya
60

select CHAR_LENGTH('agus r');


Hasilnya : 6
4) COALESCE(ekspresi1, ekspresi2,.......)
5) Mengemblikan nilai null ke nilai yang didefinisikan
SELECT COALESCE(NULL,'ag');
Hasilnya = ag
6) CONCAT(x,y,z,.....)
mysql> SELECT Concat('My', 'S', 'QL');
-> 'MySQL'
mysql> SELECT Concat('My', NULL, 'QL');
-> NULL
mysql> SELECT Concat (14.3);
-> '14.3'
7) DECODE(string_biner, string_enkripsi)
Decoding data enkripsi berdasarkan kunci enkripsinya:
select decode('°ëÊ8','kunci_agus');
Hasilnya : agus
[°ëÊ8]merupakan hasil encoding dari no 9
8) ELT(n,string1,string2,string3,......)
Mengembalikan string1, jika n =1, string2 jika n=2, Kembalikan NULL jika n
kurang dari 1 atau lebih besar dari nomor yang menjadi argumen.
mysql> SELECT ELT(1, 'ej', 'Heja', 'hej', 'foo');
-> 'ej'
mysql> SELECT ELT(4, 'ej', 'Heja', 'hej', 'foo');
-> 'foo'
9) ENCODE(owrd, string_enkripsi)
select encode('agus','kunci_agus');
Hasilnya : °ëÊ8
10) ENCRIPT(word[,seed])
Berlaku untuk mysql di keluarga UNIX
11) FIELD(string,string1,string2,string3,......)
Kebalikan dari ELT, kembalikan ke nilai 0 jika string tidak ditemukan pada string1,
string2, string 3, .....
mysql> SELECT FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo');
-> 2
mysql> SELECT FIELD ('fo', 'Hej', 'ej', 'Heja', 'hej', 'foo');
-> 0
12) FIND_IN_SET(str, stringlist)
Cari posisi str pada data stringlist
mysql> SELECT FIND_IN_SET('b','a,b,c,d');
-> 2
13) INSERT(string,karakter_ke,panjang,yg_nimpa)
Mengganti karakter string pada karakter ke...dengan panjang....ditimpa oleh .....
SELECT INSERT('Agnes R', 3, 3, 'us');
Hasilnya : Agus R
Terjemahan : Ganti karakter ke 3 dari agnes dengan panjang 3 dari kata agnes ganti
oleh string us
14) INSTR(x,y)
Cari posisi karakter y yang berada di x
SELECT INSTR('agus', 'g');
Hasilnya : 2
15) LCASE(x)

Agus Ramdhani Nugraha, MT.


STMIK DCI Tasikmalaya
61

Untuk mengubah string x menjadi lower case semua


SELECT LCASE (‘Agus Ramdhani’);
Hasilnya : agus ramdhani
16) LEFT(x,y)
Mengambil sejumlah y karakter dari string x, diambil dari kiri ke kanan
SELECT LEFT (‘agus ramdhani nugraha’,2)
hasilnya : ag
17) LENGTH(x)
Digunakan untuk mengetahui panjang string termasuk spasinya.
SELECT LENGTH(‘agus ramdhani’);
Hasilnya : 13
18) LOAD_FILE(namafile)
Digunakan untuk menkonversi file (e.g gambar.jpg) ke dalam format yang
didukung MySQL. Fasilitas ini digunakan karena MySQL tidak mendukung format
gambar sehingga harus dikonversi terlebih dahulu.
Syarat agar file gambar bisa masuk ke dalam kolom maka kolom dianjurkan
penulis bertype LONGBLOB
UPDATE t SET blob_col=LOAD_FILE('c:\gambar.jpg') WHERE id=1;
Cek isi data dengan menggunakan MySQL-Front
19) LOCATE(x,y,z)
Memberikan posisi string x didalam string y mulai posisi ke z
select locate('s','agus',1);
Hasilnya : 4
20) LOWER(x)
Sama seperti LCASE(x)
21) LPAD(x,y,z)
Menambahkan string z kepada x di sebelah kirinya dengan panjang karakter y
untuk keseluruhan (ditambahkan)
select lpad('us',4,'ag');
hasilnya : agus
22) LTRIM(x)
Digunakan utnuk membuang spasi di sebelah kiri huruf string x, apabila string x
diawali dengan spasi.
select ltrim(‘ agus’);
hasilnya : agus (tanpa spasi)
23) MID(x,y,z)
Mengambil data string dari x mulai y sebanyak z
select mid('agus ramdhani',6,3);
Hasilnya : ram
24) OCTET_LENGHT()
sama dengan LENGHT()
25) PASSWORD(password)
Menghasilkan string yang dienkripsi.
Lihat kolom password di tabel user pada database mysql

Agus Ramdhani Nugraha, MT.


STMIK DCI Tasikmalaya
62

26) POSITION(x,y)
Sama dengan locat
27) REPEAT(x,y)
Mengasilkan string x yang akan diulang sebanyak y kali
Select repeat(‘agus’,3);
Hasilnya : agusagusagus
28) REPLACE(x,y,z)
Menggantikan semua string dalam x, yang bernilai y dengan string z
Select replace(‘jaka’,’a’,’o’);
Hasilnya : joko
29) REVERSE(x)
Mengasilkan string yang terbalik dari x
Select reverse(‘agus’);
Hasilnya : suga
30) RIGHT(string, lenght)
Mengambil sejumlah lenght karakter dari string mulai dari kanan.
select right(‘agus ramdhani’,5);
Hasilnya : dhani
31) RPAD(x,y,z)
Menambahkan string z disebelah kanan string x apabila string x lebih kecil dari y.
select rpad(‘base’,8,’da’);
Hasilnya : basedada
32) RTRIM(x)
Membuang semua spasi yang ada di sebelah kanan string x
Select rtrim(‘agus ’);
Hasilnya : agus
33) SOUNDEX(x)
Menghasilkan string soundex dari x
Select soundex(‘agus’);
34) SPACE(x)
Sebuat spasi sejumlah x
Select space(3);
Hasilnya : “ “
35) STRCMP(string1, string2)
Digunakan untuk membandingkan string1 dan string2, jika sama nilainya 0,
berbeda nilainya 1 dan null jika yang dibandingkan salah satunya bernilai null.
Select strcmp(‘Agus ramdhani’,’Agus Ramdhani’);
Hasilnya : 0
Select strcmp(‘Agus ramdhani’,’agus Ramdhane’);

Agus Ramdhani Nugraha, MT.


STMIK DCI Tasikmalaya
63

Hasilnya ; 1

String tidak case-sensitif


36) SUBSTRING_INDEX(x,y,z)
Mendapatkan semua string yang ada pada x setelah string y sebanya z kali
ditemukan
37) TRIM([[BOTH OR LEADING or TRAILING][x] FROM ]y)
Leading => membuang string x dari depan string y
Trailing => membuang string x dari belakang string y
BOTH => membuang string x di depan dan di belakang string y
mysql> SELECT TRIM(' bar ');
-> 'bar'
mysql> SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx');
-> 'barxxx'
mysql> SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx');
-> 'bar'
mysql> SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz');
-> 'barx’
38) UCASE(x)
Mengubah String x menjadi huruf kapital semua
39) UPPER(x)
Sama seperti ucase()

V. Fungsi tanggal
1) ADDDATE(date, interval ekspresi_interval)
Digunakan untuk mendapatkan tanggal baru dengan menambahkan tanggal dengan
data interval. x adalah tanggal awal, ekspresi interval adalah data interval untuk
membuat tanggal baru.

Tabel tipe interval yang mungkin


No Tipe Nilai yang perlu dinyatakan
1 SECOND Jumlah detik
2 MINUTE Jumlah menit
3 HOUR Jumlah jam
4 DAY Jumlah hari
5 MONTH Jumlah bulan
6 YEAR Jumlah tahun
7 MINUTE_SECOND Menit:Detik
8 HOUR_MINUTE Jam:Menit
9 DAY_HOUR Jmlh Hari Jmlh Jam
10 YEAR_MONTH Tahun - Bulan
11 HOURD_SECOND Jam:Menit:Detik
12 DAY_MINUTE JumlahHari Jam:Menit
13 DAY_SECOND JumlahHari Jam:Menit:Detik

Select ADDDATE(“2006-06-25”, INTERVAL 2 DAY);


Hasilnya adalah : 2006-06-27  naik 2 hari dari date
Select ADDDATE(“2006-06-25”, INTERVAL 4 MONTH);
Hasilnya adalah : 2006-10-25
2) CURDATE() dan CURRENT_DATE()
Menghasilkan tanggal sekarang dari sistem
Select CURDATE();

Agus Ramdhani Nugraha, MT.


STMIK DCI Tasikmalaya
64

hasilnya tanggal sistem


3) CURTIME() dan CURRENT_TIME()
menghasilkan jam saat ini pada sistem
Select curtime();
4) CURRENT_TIMESTAMP()
Menghasilkan tanggal dan jam sistem saat ini
select current_timestamp();
2006-04-2005 20:07:04
5) DATE_ADD(date, interval ekspresi_interval)
Sama seperti ADDDATE
6) DATE_FORMAT(date, simbol_format)
Digunakan untuk mengkonversi data tanggal sesuai dengan simbol format yang
diinginkan.

No Simbol Format Arti


1 %M Nama Bulan Secara Penuh
2 %m Nama Bulan
3 %b Nama Bulan disingkat
4 %W Nama hari secara lengkap
5 %D Nama hari dalam bulan
6 %y Tahun dalam format 4 digit
7 %Y Tahun dengan 2 digit
8 %j Nomor hari dalam 1 tahun
9 %a Nama hari dengan disingkat
10 %d Nomor hari dalam 1 bulan
11 %r Jam dlm format 12 jam
12 %T Jam dalam format 24 jam
13 %H Jam dalam format 24 jam :00-23
14 %h Jam dalam format 12 jam : 00-12
15 %S Detik

Versi Lengkap :
Specifier Description
%a Abbreviated weekday name (Sun..Sat)
%b Abbreviated month name (Jan..Dec)
%c Month, numeric (0..12)
%D Day of the month with English suffix (0th, 1st, 2nd, 3rd, …)
%d Day of the month, numeric (00..31)
%e Day of the month, numeric (0..31)
%f Microseconds (000000..999999)
%H Hour (00..23)
%h Hour (01..12)
%I Hour (01..12)
%i Minutes, numeric (00..59)
%j Day of year (001..366)
%k Hour (0..23)
%l Hour (1..12)
%M Month name (January..December)
%m Month, numeric (00..12)
%p AM or PM
%r Time, 12-hour (hh:mm:ss followed by AM or PM)
%S Seconds (00..59)

Agus Ramdhani Nugraha, MT.


STMIK DCI Tasikmalaya
65

%s Seconds (00..59)
%T Time, 24-hour (hh:mm:ss)
%U Week (00..53), where Sunday is the first day of the week
%u Week (00..53), where Monday is the first day of the week
%V Week (01..53), where Sunday is the first day of the week; used with %X
%v Week (01..53), where Monday is the first day of the week; used with %x
%W Weekday name (Sunday..Saturday)
%w Day of the week (0=Sunday..6=Saturday)
Year for the week where Sunday is the first day of the week, numeric, four
%X digits; used with %V
Year for the week, where Monday is the first day of the week, numeric, four
%x digits; used with %v
%Y Year, numeric, four digits
%y Year, numeric (two digits)
%% A literal ‘%’ character
%x x, for any ‘x’ not listed above

Select date_format(“2006-04-25”, ‘%d %M %Y’);


Hasilnya : 25 April 2006
Select date_format(“2006-04-25”, ‘ %W %d %M %Y’);
Hasilnya : Tuesday 25 April 2006.
Variasikan dan praktekan simbol format diatas
7) DATE_SUB(date, interval ekspresi_interval)
Pengurangan date sesuai dengan ekspresi interval seperti pada adddate
SELECT DATE_SUB('2006-06-25 00:00:00', INTERVAL '1 01:01:01' DAY_SECOND);
Hasilnya : 2006-06-23 22:58:59
Arti dari perintah diatas adalah  kurangi tanggal 25 04 2006 jam 00:00:00 dengan
1 hari 1 jam 1 menit dan 1 detik
8) DAY_NAME(date)
Mendapatkan hari dari tanggal date
SELECT DAYNAME('7000-05-01');
Hasilnya : Thursday
9) DAYOFMONTH(date)
Menampilkan nomor hari dari tanggal yang menjadi argument
SELECT DAYOFMONTH('2001-11-14');
Hasilnya : 14
10) DAYOFWEEK(date)
Menampilkan nomor hari dalam satu minggu untuk tanggal yang menjadi argument
fungsi.
Select dayofweek(‘2006-04-25’);
hasilnya : 3
No 1 dari dalam 1 minggu adalah hari minggu
11) DAYOFYEAR(date)
Menampilkan nomor hari dalam 1 tahun dari argumen fungsi.
Select dayofyear(‘2006-04-25’);
Hasilnya : 115
Berarti tanggal 25 April 2006 merupakan hari ke 115 dalam tahun 2006
Select dayofyear(‘2006-12-31’);
Hitung hasilnya :
12) EXTRACT(nilai from date)

Agus Ramdhani Nugraha, MT.


STMIK DCI Tasikmalaya
66

Mendapatkan nilai dari date


select extract(day from ‘2006-04-25’);
Hasilnya : 25 karena day dari date adalah 25
13) FROM_DAYS(days)
Mendapatkan tanggal berdasarkan suatu bilangan
SELECT FROM_DAYS(730485);
Hasilnya adalah : 1 desember 2000
Coba bikin angka sehingga hasilnya tanggal sekarang.
14) FROM_UNIXTIME(unixtime[, simbol_format])
SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(),'%Y %D %M %h:%i:%s %x');
Hasilnya : 2006 25th April 09:40:12 2006
15) HOUR(time)
Mengambil jam dari argument
Select hour(“05:06:07”);
Hasilnya : 5
16) MINUTE(time)
sama dengan point 15 untuk menit
17) MONTH(date)
Sama dengan point 15 untuk type tanggal
18) MONTHNAME(date)
mengambil nama bulan dari tanggal (date)
19) NOW()
Mengambil waktu sekarang yang ditampilkan lengkap.
Select now();
Hasilnya : 2006-04-25 21:43:39
20) PERIOD_ADD(x,y)
Penjumlahan bulan x dengan y
mysql> SELECT PERIOD_ADD(9801,2);
-> 199803
21) PERIOD_DIFF(x,y)
Selisih bulan x dan y
select period_diff(200612, 120005);
Hasilnya : 9679 (bulan)
22) QUARTER(date)
satu tahun dibagi 3
jan - maret = 1
select quarter("2002-10-01");
hasilnya : 4
23) SECOND(time)
menghasilkan detik dari waktu yang menjadi argument
select second(“05:06:07”);
Hasilnya : 7
24) SEC_TO_TIME(second)
menhasilkan waktu dalam format hh:mm:ss
select sec_to_time(3600);
Hasilnya : 01:00:00 (karena 3600 detik adalah 1 jam)
25) SUBDATE()
26) SYSDATE()
27) TIME_FORMAT(time, simbol_format)
28) TIME_TO_SEC(time)

Agus Ramdhani Nugraha, MT.


STMIK DCI Tasikmalaya
67

29) TO_DAYS(date)
30) UNIX_TIMESTAMP([date])
31) WEEK(date[, start])
32) WEEKDAY(date)
33) YEAR(date)

Praktekan sisa fungsi tanggal dan waktu diatas dan laporkan kegunaan fungsi-fungsi
tersebut

VI. Fungsi logika


1) IF(kondisi, ekspresi1, ekspresi2)
Jika kondisi benar maka ekspresi 2 menjadi hasil dan sebaliknya.
select if(1,’benar’,’salah’);
hasilnya : benar
select if(0,’benar’,’salah’);
Hasilnya : salah
2) IFNULL(ekspresi1, ekspresi2)
Jika ekspresi1 = null maka ekspresi2 menjadi hasil
select ifnull(angkatan,2005) from mahasiswa where nim=32050029;
Hasilnya : 2005
cek di tabel mahasiswa database ike
3) ISNULL(ekspresi)
Menghasilkan nilai 1 jika ekpresi bernilai null, nilai 0 jika ekpresi tidak bernilai
null.
select isnull(angkatan) from mahasiswa where nim=32050029;
hasilnya : 1 (karena nim tersebut benar null)

Agus Ramdhani Nugraha, MT.


STMIK DCI Tasikmalaya

Anda mungkin juga menyukai