AGREGATE and VIEW
Salam Sejahtera, kembali lagi bertemu dengan saya pastinya Rofiqof alaways Happy :D yang akan terus berbagi tentang pemrograman SQL database dengan menggunakan DBMS MySQL. Ya sekarang kita akan berkenalan dengan AGREGATE dan Pembuatan VIEW pada MySQL. Langsung saja kita
DASAR TEORI
Fungsi AGREGATE atau kadang disebut fungsi grup atau fungsi ringkasan, merupakan fungsi yang disediakan oleh SQL untuk menghasilkan sebuah nilai berdasarkan sejumlah data. FUNGSI itu sendiri adalah sekumpulan instruksi yang menghasilkan sebuah nilai jika dipanggil. Adapun FUNGSI AGREGATE yang disediakan oleh SQL sebagai berikut :
- Fungsi AVG
mysql> SELECT AVG(nama_kolom)
-> FROM nama_tabel;
mysql> SELECT [nama_kolom, .. ]
-> FROM nama_tabel
-> GROUP BY nama_kolom;
-> FROM nama_tabel;
- Fungsi COUNT
Dan query nya adalah sebagai berikut :
mysql> SELECT COUNT(*)
-> FROM nama_tabel;
Tanda bintang (*) itu berarti untuk menghitung dari semua nama kolom, namun bisa juga kita merubahnya dengan pencarian berdasarkan nama kolom. Misal kita akan menghitung jumlah baris berdasarkan 'no_telp',
mysql> SELECT COUNT(no_telp)
-> FROM nama_table;
Akan tetapi hasilnya akan terlihat sama, mengapa? karena count akan menghitung jumlah baris semuanya walaupun di dalam kolom 'no_telp' ada sebagian yang tidak ada isinya, dia akan tetap akan memberikan nilai sebagai null atau kosong. Jadi COUNT(*) atau COUNT(nama_kolom) hasil nya akan sama.
- Fungsi MAX
Query nya adalah sebagai berikut :
mysql> SELECT MAX(nama_kolom)
-> FROM nama_tabel;
- Fungsi MIN
Merupakan kebalikan dari fungsi MAX, yaitu untuk menghitung jumlah minimal dari suatu nilai/data yang ada di dalam kolom. Dan penjelasannya adalah kebalikan dari penjelasan fungsi MAX. Hehe :D
mysql> SELECT MIN(nama_kolom)
-> FROM nama_tabel;
- Fungsi SUM
Selanjutnya adalah SUM, digunakan untuk menghitung jumlah data. Berbeda dengan fungsi COUNT(*), SUM digunakan untuk menghitung jumlah data yang sama didalam didalam sebuah kolom. Didalam MySQL SUM juga bisa digunakan untuk type character.
Query umumnya adalah sebagai berikut :
mysql> SELECT SUM(nama_kolom)
-> FROM nama_tabel;
Atau
mysql> SELECT SUM(nama_kolom = [nilai])
-> FROM nama_tabel;
- Fungsi GROUP BY
Fungsi digunakan untuk melakukan pengelompokan hasil dari perintah SELECT. GROUP BY dapat digunakan diberbagai perintah SELECT.
TIP : "Kolom-kolom yang anda sebutkan dalam SELECT dan tidak berada dalam fungsi AGREGATE haruslah disebutkan dalam klausa GROUP BY"Query untuk fungsi ini adalah
mysql> SELECT [nama_kolom, .. ]
-> FROM nama_tabel
-> GROUP BY nama_kolom;
- Fungsi HAVING
Fungsi ini masih ada kaitannya dengan GROUP BY dan fungsi ini hanya akan berjalan setelah terdapat fungsi GROUP BY. Fungsi ini berfungsi untuk menentukan kondisi bagi GROUP BY.
mysql> SELECT [nama_kolom, ..]
-> FROM nama_tabel
-> GROUP BY nama_kolom
-> HAVING [kondisi];
- Fungsi CASE
CASE digunakan untuk menentukan nilai keluaran/output data yang tidak sama dengan nama asalnya, misal ketika data aslinya adalah L, maka outputnya adalah Laki-Laki, dan sebagainya sesuai yang kita inginkan. Hal ini sama dengan fungsi ' if ' jika pada bahasa pemrograman JAVA, C, C++ atau bahasa pemrograman lain, yaitu untuk menentukan nilai dari suatu kondisi.
mysql> CASE nama_kolom
-> WHEN nilai_ekspresi
-> THEN hasil_ekspresi
-> [ELSE hasil_ekspresi]
-> END AS nama_alias
-> FROM nama_tabel;
Bentuk ini dapat dimanfaatkan untuk mengubah keluaran yang berbeda dengan data asalnya, atau jika ingin mengeluarkan data jika kondisi bernilai true.
- Fungsi VIEW
Dalam fungsi ini kita akan membuat tabel pandangan(begitu kebanyakan orang bilang) yang berfungsi untuk membuat tabel kita sendiri yang bersumber dari tabel yang telah ada.
Query umumnya adalah sebgai berikut :
mysql> CREATE VIEW nama_view
-> AS SELECT [nama_kolom [as nama_kolom_view], ..]
-> FROM nama_tabel;
untuk melihat hasilnya :
mysql> SELECT * FROM nama_view;
untuk menghapus :
mysql> DROP VIEW nama_view;
HASIL PRAKTIKUM
Pertama, untuk mencari nilai minimal dari tabel 'nim'
Kedua, nilai maximal
Ketiga, nilai rata-rata
Keempat, menentukan jumlah mahasiswa berdasarkan fakultas
Kelima, menentukan jumlah mahasiswa yang lebih dari 2 berdasarkan fakultas
Keenam, menentukan jumlah mahasiswa yang kurang dari 3 berdasarkan fakultas
Ketujuh, menentukan jenis kelamin jika 'L' tampilkan 'Laki-Laki' dan jika 'P' tampilkan 'Perempuan'
Kedelapan, view
membuat view |
tabel bertambah dengan view |
menampilkan hasil dari view |
EVALUASI PERBEDAAN MySQL dan PostgreSQL
Dalam pertemuan kali ini saya mendapat satu perbedaan pada antara MySQL dengan PostgreSQL, yaitu pada fungsi SUM, pada MySQL dapat menjumlahkan data dengan type character. Misal jika ingin mengetahui jumlah 'gender' yang berdasarkan 'L' dan 'P', maka :
data mahasiswa dan gender |
jumlah laki-laki |
jumlah perempuan |
Tapi kalau di PostgreSQL hanya bisa menjumlahkan angka saja, tidak untuk menghitung data karakter. Contohnya adalah sebagai berikut :
Tampilan semua data |
SUM tidak bisa menghitung data karakter |
SUM hanya bisa digunakan untuk menghitung angka |
KESIMPULAN
Berdasarkan perbedaan diatas, MySQL lebih nyaman dalam proses penghitungan data, baik angka walaupun teks.
SUMBER
Kadir, Abdul. 2002. Penuntun Praktis Belajar SQL. ANDI: Yogyakarta.
Leave a Comment