P. 1
FUNGSI MySQL Setiap Fungsi Dalam MySQL Diawali

FUNGSI MySQL Setiap Fungsi Dalam MySQL Diawali

|Views: 2,088|Likes:
Published by ibrahimboyon

More info:

Published by: ibrahimboyon on Jan 15, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

05/12/2013

pdf

text

original

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) B) DATABASE() Fungsi ini digunakan unutk memberikan informasi tentang database yang sedang digunakan (aktif) 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) E) F)

G)

SYSTEM_USER() Sama dengan SESSION_USER() USER() Sama dengan SESSION_USER() dan SYSTEM_USER() 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 ? 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) 3) 4) 5)

Pengurangan Perkalian Pembagian 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

4) 5) 6)

select CHAR_LENGTH('agus r'); Hasilnya : 6 COALESCE(ekspresi1, ekspresi2,.......) Mengemblikan nilai null ke nilai yang didefinisikan SELECT COALESCE(NULL,'ag'); Hasilnya = ag 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)

8)

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 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;

19)

20) 21)

22)

23)

24) 25)

Cek isi data dengan menggunakan MySQL-Front LOCATE(x,y,z) Memberikan posisi string x didalam string y mulai posisi ke z select locate('s','agus',1); Hasilnya : 4 LOWER(x) Sama seperti LCASE(x) 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 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) MID(x,y,z) Mengambil data string dari x mulai y sebanyak z select mid('agus ramdhani',6,3); Hasilnya : ram OCTET_LENGHT() sama dengan LENGHT() 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 2 3 4 5 6 7 8 9 10 11 12 13 SECOND MINUTE HOUR DAY MONTH YEAR MINUTE_SECOND HOUR_MINUTE DAY_HOUR YEAR_MONTH HOURD_SECOND DAY_MINUTE DAY_SECOND Jumlah detik Jumlah menit Jumlah jam Jumlah hari Jumlah bulan Jumlah tahun Menit:Detik Jam:Menit Jmlh Hari Jmlh Jam Tahun - Bulan Jam:Menit:Detik JumlahHari Jam:Menit JumlahHari Jam:Menit:Detik

2)

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 CURDATE() dan CURRENT_DATE() Menghasilkan tanggal sekarang dari sistem Select CURDATE();
Agus Ramdhani Nugraha, MT. STMIK DCI Tasikmalaya

64

3) 4)

5) 6)

hasilnya tanggal sistem CURTIME() dan CURRENT_TIME() menghasilkan jam saat ini pada sistem Select curtime(); CURRENT_TIMESTAMP() Menghasilkan tanggal dan jam sistem saat ini select current_timestamp(); 2006-04-2005 20:07:04 DATE_ADD(date, interval ekspresi_interval) Sama seperti ADDDATE DATE_FORMAT(date, simbol_format) Digunakan untuk mengkonversi data tanggal sesuai dengan simbol format yang diinginkan. No
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Simbol Format
%M %m %b %W %D %y %Y %j %a %d %r %T %H %h %S

Arti
Nama Bulan Secara Penuh Nama Bulan Nama Bulan disingkat Nama hari secara lengkap Nama hari dalam bulan Tahun dalam format 4 digit Tahun dengan 2 digit Nomor hari dalam 1 tahun Nama hari dengan disingkat Nomor hari dalam 1 bulan Jam dlm format 12 jam Jam dalam format 24 jam Jam dalam format 24 jam :00-23 Jam dalam format 12 jam : 00-12 Detik

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

65

%s %T %U %u %V %v %W %w %X %x %Y %y %% %x

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

7)

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 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) 30) 31) 32) 33)

TO_DAYS(date) UNIX_TIMESTAMP([date]) WEEK(date[, start]) WEEKDAY(date) 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

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->