Pemilik Mobil
noKTPMilik Nama Alamat noTelp noPlat Merk HargaSewa noKTPMilik warna
112 adi jogja 123 AD 3456 BB CRZ 500000 112 merah 113 agung jogja 123 AB 1719 QE Xenia 250000 114 silver
114 budi jogja 123 AB 1234 FC Inova 300000 113 hitam
116 lusi jogja 123 B 6756 TOP Inova 300000 114 hitam
penyewa sewa
noKTPSewa Nama Alamat noTelp noKTPSewa noPlat tglSewa tglKembali
232 badu bantul 123 234 AD 3456 BB 1 Maret 2014 2 Maret 2014 234 bidu bantul 123 234 AB 1719 QE 2 Maret 2014 3 Maret 2014 235 bude sleman 123 235 B 6756 TOP 4 Maret 2014 5 Maret 2014 265 oma jogja 123
52 Tampilkan daftar noPlat mobil yang pernah disewa oleh bidu
select sewa.noPlat from sewa, penyewa where sewa.noKtp = penyewa.noKTP and penyewa.nama='bidu'; Kapan saja bidu menyewa mobil
select tglSewa from penyewa, sewa where penyewa.noKTP=sewa.noKTP and penyewa.nama='bidu';
Tampilkan noKTP dan nama peminjam/penyewa yang pernah meminjam mobil dengan nomor plat B 6756 TOP
select penyewa.noKTP, penyewa.nama from penyewa, sewa where penyewa.noKTP=sewa.noKTP and sewa.noPlat='B 6756 TOP'; Tampilkan noKTP,nama pemilik dan merk mobilnya
select pemilik.noKtp, pemilik.nama, mobil.merk from mobil, pemilik where pemilik.noKtp = mobil.noKtpmilik;
Tampilkan noKTP, nama dan alamat peminjam/penyewa yang meminjam mobil setelah tanggal 2 Maret 2014 ………
53 MATERI 8
FUNGSI
Kompetensi:
Mahasiswa mampu memahami dan membuat fungsi di MySQL. Maksud dan tujuan:
Mahasiswa mengerti dan memahami serta dapat menggunakan fungsi yang sudah disediakan MySQL
Landasan teori:
Fungsi (function) merupakan fasilitas yang disediakan oleh database secara umum untuk memanipulasi data yang kompleks, seperti mencari jumlah data, mencari rata-rata nilai yang ada dalam suatu tabel dan lain-lain, bukan hanya sekedar membaca data dari tabel saja. Fungsi adalah suatau rutin khusus yang disediakan oleh MySQL untuk melakukan manipulasi suatu data.
Fungsi digunakan (disertakan) sebagai bagian dari suatu perintah query SQL (select). Secara umum fungsi dinyatakan dalam SQL select adalah sebagai berikut :
FROM namatabel tidak harus diberikan dalam MySQL. Fungsi dalam MySQL seperti halnya perintah SQL dapat dituliskan dalam huruf besar ataupun huruf kecil.
Fungsi dalam MySQL dibedakan menjadi : 1. Fungsi sistem 2. Fungsi agregat 3. Fungsi aritmatika 4. Fungsi string 5. Fungsi tanggal 6. Fungsi logika 1. Fungsi Sistem
Kelompok fungsi sistem adalah kelompok yang memberikan informasi tentang pemakaian server database oleh pemakai. Kelompok ini terdiri atas :
a. DATABASE()
Fungsi ini digunakan untuk memberikan informasi database apa yang sedang digunakan oleh pemakai.
b. LAST_INSSERT_ID()
Digunakan untuk menampilkan informasi data yang telah dihasilkan (digenerate) oleh MySQL pada kolom yang menggunakan tipe data AUTOINCREMENT.
c. SESSION_USER()
Fungsi yang digunakan untuk menampilkan informasi pemakai yang sedang melakukan akses ke dalam server MySQL saat ini.
d. SYSTEM_USER()
Fungsi ini sama dengan fungsi SESSION_USER() SELECT fungsi (ekspresi) [FROM namatabel];
54 e. USER()
Fungsi ini sama dengan fungsi SESSION_USER() dan SYSTEM_SESSION().
f. VERSION()
Fungsi ini digunakan untuk mengetahui versi server MySQL yang sedang digunakan saat ini.
g. BENCHMARK(x,ekspresi)
Mengerjakan perintah pada ekspresi sejumlah count kali. Nilai yang dihasilkan selalu 0. Hal penting dari fungsi ini adalah nilai waktu yang digunakan (elapsed time) yang diberikan pada bagian akhir, memungkinkan kita menilai berapa cepat server mengevaluasi query. h. LOAD_FILE(nama_file)
Digunakan untuk membuka file dan memberikan isinya sebagai string. File harus ada dalam server dan pemakai untuk menggunakan fungsi ini memiliki privelege File.
2. Fungsi Agregat
Fungsi agregat adalah fungsi standar di dalam SQL, suatu fungsi yang digunakan untuk melakukan summary, merupakan fungsi stastistik standar yang dikenakan pada suatu tabel atau query.
1. AVG(ekspresi)
Fungsi ini digunakan untuk mencari rata-rata nilai dalam suatu kolom dari satu tabel atau ekspresi. Ekspresi dalam fungsi AVG umumnya adalah nama kolom. Kolom yang dicari nilai rata-ratanya adalah kolom dengan tipe data numerik.
Nilai rata-rata yang dihasilkan oleh fungsi ini tidak melibatkan dalam perhitungannya baris yang memiliki nilai pada kolom yang dicari rata-ratanya bernilai NULL.
2. COUNT(x)
Fungsi ini digunakan untuk menghitung jumlah record (baris) dari suatu kolom atau suatu tabel. X adalah nama kolom dari tabel yang diinginkan dicari jumlah record (baris)nya.
3. MAX(ekspresi)
Fungsi ini digunakan untuk mencari nilai terbesar dari suatu kolom dari suatu tabel atau ekspresi. Kolom yang dicari nilai terbesarnya memiliki tipe data numerik.
Fungsi MAX() tidak melibatkan dalam perhitungannya, data yang bernilai NULL dari suatu baris yang kolomnya memiliki nilai NULL.
4. MIN(ekspresi)
Fungsi MIN() merupakan lawan dari fungsi MAX(). Fungsi ini mencari nilai terkecil dari suatu kolom dalam suatu tabel atau ekspresi.
5. STD(ekspresi) dan STDDEV(ekspresi)
Fungsi ini digunakan untuk mendapatkan standar deviasi dari data suatu kolom dalam tabel. Ekspresi umumnya menyatakan kolom suatu tabel dengan tipe datanya numerik.
6. SUM(ekspresi)
Fungsi ini digunakan untuk mendapatkan nilai total dari suatu kolom suatu tabel atau ekspresi.
55 3. Fungsi Aritmetika
MySQL memiliki fasilitas dasar untuk melakukan manipulasi data numerik, seperti penjumlahan, pengurangan, perkalian dan pembagian yang disertakan dalam suatu perintah select. Fasilitas tersebut dikenal dengan operator aritmatika.
1. Penjumlahan(+)
Digunakan untuk menjumlahkan dua buah data numerik, hasil dari operasi ini adalah data numerik juga.
2. Pengurangan(-)
Digunakan untuk melakukan operasi pengurangan dua buah data numerik, bilangan yang disebelah kiri dikurangi dengan bilangan yang disebelah kanan. Hasil dari operasi ini adalah data numerik.
3. Perkalian(*)
Digunakan untuk melakukan operasi perkalian dua data numerik. Hasil dari operasi ini adalah data numerik juga.
4. Pembagian(/)
Digunakan untuk melakukan operasi pembagian dua data numerik. Bilangan di sebelah kiri dibagi dengan bilangan yang ada disebelah kanan operator, hasil dari operasi ini adalah data numerik.
5. Pembagian sisa(%)
Digunakan untuk mendapatkan sisa pembagian dari suatu operasi pembagian, bilangan di sebelah kiri dibagi dengan bilangan disebelah kanan, sisa dari hasil pembagian ini yang menjadi hasil dari operasi ini. Operasi pembagian sisa biasa disebut modulus.
4. Fungsi Tanggal
Tanggal dalam MySQL menggunakan tanggal dari sistem Unix, tidak ada masalah sampai dengan 2069. Semua tahun yang dinyatakan dengan dua digit diasumsikan tahun tersebut pada range tanggal antara tahun 1970 sampai dengan 2069. Jika dimasukkan tahun 01 maka akan dianggap tahun 2001.
Format tanggal dan jam dalam MySQL adalah dengan menggunakan format tahun, bulan, tangal, jam, menit dan detik
yyyy-mm-dd HH:ii:ss
yyyy adalah tahun dalam format angka
mm adalah nomor bulan dalam format 2 angka
dd adalah tanggal dalam bulan dengan format 2 angka HH adalah jam dalam format jam 00-23
ii adalah menit dalam format 00-59 ss adalah detik dalam format 00-59
Berikut ini fungsi built-in untuk data tanggal dalam MySQL : 1. ADDDATE(date, INTERVAL ekspresi_interval)
2. CURDATE() dan CURRENT_DATE() 3. CURTIME() dan CURRENT_TIME() 4. CURRENT_TIMESTAMP()
5. DATE_ADD(date, INTERVAL ekspresi_interval) 6. DATE_FORMAT(date, simbolformat)
7. DATE_SUB(date, INTERVAL ekspresi_interval) 8. DAYNAME(date)
56 9. DAYOFMONTH(date)
10. DAYOFWEEK(date) 11. DAYOFYEAR(date)
12. EXTRACT(value FROM date) 13. FROM_DAYS(days) 14. FROM_UNIXTIME(unixtime[,simbolformat]) 15. HOUR(time) 16. MINUTE(time) 17. MONTH(date) 18. MONTHNAME(date) 19. NOW() 20. PERIOD_ADD(x,y) 21. PERIOD_DIFF(x,y) 22. QUARTER(date) 23. SECOND(time) 24. SEC_TO_TIME(second) 25. SUBDATE() 26. SYSDATE() 27. TIME_FORMAT(time,simbolformat) 28. TIME_TO_SEC(time) 29. TO_DAYS(date) 30. UNIX_TIMESTAMP([date]) 31. WEEK(date[,start]) 32. WEEKDAY(date) 33. YEAR(date) 5. Fungsi String
Fungsi string digunakan untuk manipulasi teks (string). MySQL menyediakan banyak fungsi built-in untuk melakukan manipulasi teks ini. Berikut ini adalah daftar fungsi string yang telah disediakan :
1. ASCII(x) 2. CHAR(x,y,z,…) 3. CHARACTER_LENGTH, CHAR_LENGTH 4. COALES(ekspresi1, ekspresi2, …) 5. CONCAT(x,y,z,…) 6. DECODE(string_biner,string_enkripsi) 7. ELT(x,a,b,c,…) 8. ENCODE(owrd,string_enkripsi) 9. ENCRYPT(word[,seed]) 10. FIELD(x,y,z,…) 11. FIND_IN_SET(x,stringlist) 12. INSERT(x,y,z,j) 13. INSTR(x,y) 14. LCASE(x) 15. LEFT(x,y) 16. LENGTH(x) 17. LOAD_FILE(namafile) 18. LOCATE(x,y,z) 19. LOWER(x) 20. LPAD(x,y,z)
57 21. LTRIM(x) 22. MID(x,y,z) 23. OCTET_LENGTH() 24. PASSWORD(password) 25. POSITION(x,y) 26. REPEAT(x,y) 27. REPLACE(x,y) 28. REVERSE(x) 29. RIGHT(string,length) 30. RPAD(x,y,z) 31. RTRIM(x) 32. SOUNDEX(x) 33. SPACE(x) 34. STRCMP(string1,string2) 35. SUBSTRING_INDEX(x,y,z)
36. TRIM([[BOTH OR LEADING or TRAILING][x] FROM] y) 37. UCASE(x)
38. UPPER(x)
6. Fungsi Logika
Fungsi logika merupakan fungsi yang disediakan oleh MySQL untuk melakukan evaluasi suatu ekspresi. Berdasarkan nilai ekspresi ini akan dihasilkan suatu nilai yang akan ditampilkan pada hasil query.
Berikut adalah fungsi built-in yang disediakan untuk melakukan evaluasi ekspresi :
1. IF(ekspresi1, ekspresi2, ekspresi3)
Fungsi if() mengevaluasi ekspresi1, jika ekspresi1 bernilai benar(true) maka ekspresi2 akana menjadi hasil, jika ekspresi1 bernilai salah (false) maka ekspresi3 akan menjadi hasilnya.
2. IFNULL(ekspresi1, ekspresi2)
Fungsi ini akan mengevaluasi ekspresi1, jika ekspresi1 berisi NULL, maka ekspresi2 menjadi hasilnya, sedangkan jika ekspresi1 bukan NULL maka ekspresi1 itu sendiri yang menjadi hasilnya
3. ISNULL(ekspresi)
Menghasilkan nilai 1 jika ekspresi bernilai NULL.
Daftar pustaka:
Buku Modul Praktikum Basis Data Komputer dan Sistem Informasi Sekolah Vokasi UGM.