fungsi mysql setiap fungsi dalam mysql diawali
TRANSCRIPT
FUNGSI MySQL
Setiap fungsi dalam MySQL diawali dengan SELECTFungsi-fungsi dalam MySQL dibedakan menjadi :1. Fungsi sistem2. Fungsi agregrat3. Fungsi aritmetika4. Fungsi String5. 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
53
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
54
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 ekspresiSintaksnya adalah sbbSELECT 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
55
c) MAX(ekpresi)Digunakan untuk mencari nilai maksimum dari suatu kolom atau tabel atau ekspresiLihat 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,477173Latihan 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
56
III. FUNGSI ARITMETIKA
1) Penjumlahan
2) Pengurangan3) Perkalian4) Pembagian5) Pembagian sisa (%)
Karena 3 kali 33 sama dengan 99 maka sisanya 16) ABS(x)
Untuk mendapatkan nilai absolutSelect 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
57
Mendapatkan nilai biner dari nilai(x). Ingat rumus 128 64 32 16 8 4 2 1
0 0 0 0 0 0 0 01 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 tidakNilai biner = 1100
12) CEILING(x)Pembulatan keatas dari nilai xMisal = 5,8 maka akan dibulatkan menjadi 6
13) CONV(x, daribasis, kebasis)Nilai minimum untuk base adalah 2 dan maksimumnya adalah 16mysql> 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 radian17) 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 2Hasilnya adalah 498.90
20) GREATEST(x,y,....)Memilih nilai terbesar dari daftar bilangan yang didefinisikan
21) HEX(x)Mencari niali keksadesimal dari nilai x15 = F
22) LEAST(x,y,z,....)Kebalikan dari greatest
Agus Ramdhani Nugraha, MT.STMIK DCI Tasikmalaya
58
23) LOG(x)24) LOG10(x)25) MOD(x,y)
sama dengan pembagian sisa26) OCT(x)27) PI()
Mendapatkan nilai konstanta PISelect 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 randomSelect rand();
32) ROUND(x)Membulatkan bilangan x menjadi bilangan bulat (integer)
33) ROUND(x,y)Menghitung bilangan x sampai dengan posisi desimal y tertentuMisal bil desimal 45.98978 dibulatkan 3Hasilnya 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 x37) TAN(x)38) TRUNCATE(x,y)
Sama dengan round tetapi tidak dibulatkanMisal bil desimal 45.98978 dibulatkan 3Hasilnya 45.989
IV. Fungsi String1) ASCII(x)
Digunakan untuk mendapatkan nilai code ascii dari variable xSelect ascii(‘a’);hasilnya : 97select ascii('A');Hasilnya : 62
2) CHAR(x,y,z,....)Untuk mendapatkan karakter dari kode asciiSelect char(97);Hasilnya = aSELECT CHAR(77,121,83,81,'76');Hasilnya ?????
3) CHARACTER_LENGHT, CHAR_LENGTHUntuk mendapatkan panjang karakter dari nilai string yang didefinisikan
Agus Ramdhani Nugraha, MT.STMIK DCI Tasikmalaya
59
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'); -> NULLmysql> 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'); -> 2mysql> SELECT FIELD ('fo', 'Hej', 'ej', 'Heja', 'hej', 'foo'); -> 0
12) FIND_IN_SET(str, stringlist)Cari posisi str pada data stringlistmysql> 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 RTerjemahan : 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 xSELECT INSTR('agus', 'g');Hasilnya : 2
15) LCASE(x)
Agus Ramdhani Nugraha, MT.STMIK DCI Tasikmalaya
60
Untuk mengubah string x menjadi lower case semuaSELECT LCASE (‘Agus Ramdhani’);Hasilnya : agus ramdhani
16) LEFT(x,y)Mengambil sejumlah y karakter dari string x, diambil dari kiri ke kananSELECT 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 LONGBLOBUPDATE t SET blob_col=LOAD_FILE('c:\gambar.jpg') WHERE id=1;
Cek isi data dengan menggunakan MySQL-Front19) LOCATE(x,y,z)
Memberikan posisi string x didalam string y mulai posisi ke zselect 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 zselect 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
61
26) POSITION(x,y)Sama dengan locat
27) REPEAT(x,y)Mengasilkan string x yang akan diulang sebanyak y kaliSelect repeat(‘agus’,3);Hasilnya : agusagusagus
28) REPLACE(x,y,z)Menggantikan semua string dalam x, yang bernilai y dengan string zSelect replace(‘jaka’,’a’,’o’);Hasilnya : joko
29) REVERSE(x)Mengasilkan string yang terbalik dari xSelect 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 xSelect rtrim(‘agus ’);Hasilnya : agus
33) SOUNDEX(x)Menghasilkan string soundex dari xSelect soundex(‘agus’);
34) SPACE(x)Sebuat spasi sejumlah xSelect 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 : 0Select strcmp(‘Agus ramdhani’,’agus Ramdhane’);
Agus Ramdhani Nugraha, MT.STMIK DCI Tasikmalaya
62
Hasilnya ; 1
String tidak case-sensitif36) 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 yTrailing => membuang string x dari belakang string yBOTH => membuang string x di depan dan di belakang string ymysql> 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 dinyatakan1 SECOND Jumlah detik2 MINUTE Jumlah menit3 HOUR Jumlah jam4 DAY Jumlah hari5 MONTH Jumlah bulan6 YEAR Jumlah tahun7 MINUTE_SECOND Menit:Detik8 HOUR_MINUTE Jam:Menit9 DAY_HOUR Jmlh Hari Jmlh Jam10 YEAR_MONTH Tahun - Bulan11 HOURD_SECOND Jam:Menit:Detik12 DAY_MINUTE JumlahHari Jam:Menit13 DAY_SECOND JumlahHari Jam:Menit:Detik
Select ADDDATE(“2006-06-25”, INTERVAL 2 DAY);Hasilnya adalah : 2006-06-27 naik 2 hari dari dateSelect ADDDATE(“2006-06-25”, INTERVAL 4 MONTH);Hasilnya adalah : 2006-10-25
2) CURDATE() dan CURRENT_DATE()Menghasilkan tanggal sekarang dari sistemSelect CURDATE();
Agus Ramdhani Nugraha, MT.STMIK DCI Tasikmalaya
63
hasilnya tanggal sistem3) CURTIME() dan CURRENT_TIME()
menghasilkan jam saat ini pada sistemSelect curtime();
4) CURRENT_TIMESTAMP()Menghasilkan tanggal dan jam sistem saat iniselect 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 Arti1 %M Nama Bulan Secara Penuh2 %m Nama Bulan3 %b Nama Bulan disingkat4 %W Nama hari secara lengkap5 %D Nama hari dalam bulan6 %y Tahun dalam format 4 digit7 %Y Tahun dengan 2 digit8 %j Nomor hari dalam 1 tahun9 %a Nama hari dengan disingkat10 %d Nomor hari dalam 1 bulan11 %r Jam dlm format 12 jam12 %T Jam dalam format 24 jam13 %H Jam dalam format 24 jam :00-2314 %h Jam dalam format 12 jam : 00-1215 %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
64
%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)
%XYear for the week where Sunday is the first day of the week, numeric, four digits; used with %V
%xYear for the week, where Monday is the first day of the week, numeric, four 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 2006Select 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 adddateSELECT DATE_SUB('2006-06-25 00:00:00', INTERVAL '1 01:01:01' DAY_SECOND);Hasilnya : 2006-06-23 22:58:59Arti 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 dateSELECT DAYNAME('7000-05-01');Hasilnya : Thursday
9) DAYOFMONTH(date)Menampilkan nomor hari dari tanggal yang menjadi argumentSELECT 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 : 3No 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 : 115Berarti tanggal 25 April 2006 merupakan hari ke 115 dalam tahun 2006Select dayofyear(‘2006-12-31’);Hitung hasilnya :
12) EXTRACT(nilai from date)
Agus Ramdhani Nugraha, MT.STMIK DCI Tasikmalaya
65
Mendapatkan nilai dari dateselect extract(day from ‘2006-04-25’);Hasilnya : 25 karena day dari date adalah 25
13) FROM_DAYS(days)Mendapatkan tanggal berdasarkan suatu bilanganSELECT FROM_DAYS(730485);Hasilnya adalah : 1 desember 2000Coba 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 argumentSelect 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 ymysql> SELECT PERIOD_ADD(9801,2); -> 199803
21) PERIOD_DIFF(x,y)Selisih bulan x dan yselect period_diff(200612, 120005);Hasilnya : 9679 (bulan)
22) QUARTER(date)satu tahun dibagi 3jan - maret = 1select quarter("2002-10-01");hasilnya : 4
23) SECOND(time)menghasilkan detik dari waktu yang menjadi argumentselect second(“05:06:07”);Hasilnya : 7
24) SEC_TO_TIME(second)menhasilkan waktu dalam format hh:mm:ssselect 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
66
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 logika1) IF(kondisi, ekspresi1, ekspresi2)
Jika kondisi benar maka ekspresi 2 menjadi hasil dan sebaliknya.select if(1,’benar’,’salah’);hasilnya : benarselect if(0,’benar’,’salah’);Hasilnya : salah
2) IFNULL(ekspresi1, ekspresi2)Jika ekspresi1 = null maka ekspresi2 menjadi hasilselect ifnull(angkatan,2005) from mahasiswa where nim=32050029;Hasilnya : 2005cek 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
67