AGREGATE OPERATOR
Fungsi aggregate atau disebut fungsi
ringkasan digunakan untuk melakukan
penghitungan menjadi sebuah nilai dari beberapa nilai input. Aggregate
dapat
digabungkan dengan sebuah parameter seperti
WHERE untuk menghasilkan suatu
hasil yang lebih kompleks lagi. Adapun fungsi
agregate yang disediakan oleh
PostgreSQL dapat dilihat pada tabel berikut
:
Berikut contoh aggregate query dari suatu
tabel pegawai :
Untuk pencarian banyaknya pegawai kita bisa
menggunakan query berikut :
select count(*) from pegawai;
hasil : 4
untuk pencarian nilai terbesar berdasarkan
ID :
select max(Id_peg) from pegawai;
hasi : 4
untuk pencarian nilai terkecil :
select min(Id_peg) from pegawai;
hasil : 1
untuk pencarian rata-rata :
select avg(Id_peg) from pegawai;
hasil : 2.5000
GROUP BY
Group By merupakan fungsi yang digunakan
untuk melakukan
pengelompokan dari perintah SELECT. Group by seringkali diperlukan untuk
menjalankan
agregate menjadi sebuah kelompok dari hasil Query. Berikut struktur
SQL untuk penampilan data :
select nama_kolom from nama_tabel group by nama_kolom;
Contoh :
-
Untuk menampilkan informasi nama pengarang :
Select pengarang_buk from buku group by pengarang_buku;
Hasil :
Pada hasil query terlihat pengarang muncul hanya sekali.
- Untuk menampilkan informasi
nama pengarang beserta jumlah buku yang
dikarang :
Select pengarang_buk, count(*) from buku group by pengarang_buk;
Hasil :
- Untuk menampilkan informasi
buku tiap tahunnya :
Select
tahun_buk, count(*) from buku group by tahun_buk;
Hasil :
- Untu menampilkan informasi
jumlah total uang tiap tahunnya :
Select tahun_buk, sum(harga_buk) as total from buku group by tahun_buk;
Hasil :
HAVING
Pemakaian HAVING terkait dengan GROUP BY,
kegunaanya adalah untuk
menentukan
kondisi bagi GROUP BY, dimana kelompok yang memenuhi kondisi
saja yang akan di hasilkan.
Berikut Struktur yang digunakan :
Kita akan menggunakan tabel “pesanan”
Sekarang jika kita ingin mencari pelanggan
yang memiliki total order kurang dari
2000. Maka, kita dapat menggunakan
statement :
select pelanggan, sum (hargaorder) from
pesanan group by pelanggan having
sum (hargaorder) <2000;
CASE
Meskipun SQL bukan merupakan sebuah
prosedur bahasa perograman, namun
dalam prosesnya dapat dengan bebas
mengontrol data yang kembali dari query. Kata
WHERE menggunakan perbandingan untuk mengontrol pemilihan data,
sedangkan
CASE perbandingan dalam bentuk output
kolom. Jadi intinya penggunaan CASE akan
membentuk output tersendiri berupa sebuah
kolom baru dengan data dari operasi yang
di dalamnya.Struktur didalam select seperti
berikut :
CASE WHEN condition THEN result
[WHEN ...]
[ELSE result] END
Berikut contoh query penggunaan case,
penentuan umur jika umurnya
dibawah 1986-01-01 dianggap dewasa dan
lebih dari itu dianggap remaja :
select txt_namadepan, txt_namaakhir,
dt_tgllahir, case when dt_tgllahir <
'1986-01-01' then 'dewasa' else 'balita'
end as umur from pegawai ;
Hasil :
VIEW
Views dapat juga disebut tabel bayangan
tetapi bukan temporary table, bukan
juga merupakan sebuah tabel yang asli. Suatu view adalah suatu relasi virtual yang
tidak perlu ada database tetapi dapat diproduksi atas
permintaan oleh pemakai
tertentu, pada ketika permintaan. Satu lagi kelebihan yang dimiliki oleh view
yaitu dapat menyimpan perintah query, dan dapat mewakili sebuah subset dari
tabel asli dan
memilih kolom atau row tertentu dari tabel
biasa.
create view nama_tabel_view as query;
Catatan : Query diatas merupakan query
untuk menampilkan data
menggunakan query sql select.
Berikut adalah tabel contoh kasus
penggunaan VIEW :
Kita akan menggunakan tabel “pesanan”
-
Kita akan membuat view dari tabel diatas dengan ketentuan harga dikumpulkan
berdasarkan nama pelanggannya. Sebagai
berikut :
create view total_pelanggan as select
pelanggan, sum (hargaorder) from
pesanan group by pelanggan;
Untuk melihat hasil kita bisa melakukan
query select sebagai berikut :
Select * from total_pelanggan;
Hasil :
Tugas Praktikum
Mahasiswa
Nim_mhs
Nama_mhs
Alamat_mhs
Id_fak
Fakultas
Id_fak
Nama_fak
Nim : 12
Nama : edi
Alamat : malang
Fakultas : SAINTEK
Nim
: 13
Nama : sinta
Alamat : jogja
Fakultas : SAINTEK
Nim
: 14
Nama : luki
Alamat : ponorogo
Fakultas : PSIKOLOGI
1.
Dari tabel mahasiswa yang telah dibuat
tambahkan 3 data lagi , tambahkan kolom
gender kemudian update datanya dan tampilkan
banyaknya data mahasiswa yang
telah di inputkan. Kemudian cari nim atau
id mahasiswa yang paling kecil, paling
besar dan rata-ratanya.
2.
Tampilkan rata-rata id atau nim mahasiswa yang data nimnya lebih dari
12.
3.
Tampilkan jumlah mahasiswa berdasarkan fakultas. Sehingga hasilnya
seperti berikut:
Nama fakultas Count(*)
Saintek
2
Primary key
Foreign key
Primary key Psikologi 1
4.
Tampilkan seperti nomor 3 dengan
persyaratan jumlah mahasiswa yang lebih dari
sama dengan 2 saja yang ditampilkan.
5.
Tampilkan data mahasiswa dengan persyaratan, jika jenis kelaminnya “L”
maka
tertulis laki-laki dan bila “P” maka
tertulis perempuan.
6.
Buatlah view untuk query
penampilan data mahasiswa, fakultas. Ambil berdasarkan
nim, nama mahasiswa, nama fakultas.
Tugas Rumah
1.
Buat laporan praktikum
menggunakan DBMS mysql untuk mengerjakan tugas
praktikum 1-5 dan letakkan di blog.
2.
Evaluasi perbedaan kelebihan dan kemudahan dari kedua DBMS.
Jawaban
1. Kita buka dahulu data
tabel mahasiswa terlebih dahulu.
untuk menampilkan NIM
mahasiswa terkecil:
select min(nim_mah)from mahasiswa;
untuk menampilkan NIM
mahasiswa terbesar:
select max(nim_mah)from mahasiswa;
untuk menampilkan
rata-rata dari NIM mahasiswa:
select avg(nim_mah)from mahasiswa;
2.tampilkan rata-rata id
atau NIM mahasiswa yang data nimnya lebih dari 14:
select avf(nim_mah)from mahasiswa where nim_mah
>14;
3.menampilkan jumlah
mahasiswa berdasaran fakultas:
select nama_fak, count(*) from mahasiswa, fakultas
where mahasiswa.id_fak=fakultas.id_fak group by nama_fak;
4.menampilkan seperti
yang diatas (3) dengan syarat jumlah mahasiswa yang lebih dari 3 saja yang
ditampilkan:
select nama_fak, count(*) from mahasiswa, fakultas
where mahasiswa.id_fak=fakultas.id_fak group by nama-fak having
count(nama_mah)>3;
5.tampilkan jenis kelamin
"L" menjadi "Laki-laki" dan "P" menjadi
"Perempuan" pada tabel mahasiswa:
select nim_mah, nama_mah,alamat_mah,id_fak,no_telp,genderncase
when gender='L' then 'Laki-laki' else 'Perempuan' end as jenis_kelamin from
mahasiswa;
6.buatlah view untuk
query penampilan data mahasiswa, fakultas dan jurusan. ambil berdasarkasn nim,
nama mahasiswa dan fakultas.
create view mahasiswa_baru as select nim_mah,
nama_mah, nama_fak from mahasiswa, faultas where
mahasiswa.id_fak=fakultas.id_fak;
EVALUASI PERBANDINGAN DBMS
MySQL dengan DBMS PostgreSQL
Dari hasil praktikum dan
percobaan yang telah dilakukan, dapat di lihat bahwa antara Postgre SQL dengan
MySQL mempunyai sedikit perbandingan yang terletak pada operator “COUNT, MAX,
MIN, dan AVG”. pada MySQL kita harus menuliskan operator tersebut TANPA SPASI,
misalnya : “COUNT(*)”. Sedangkan pada PostgreSQL, adanya spasi atau tidak
adanya spasi dalam penulisan operator tersebut tidaklah berpengaruh, misalnya :
“COUNT (*)” atau “COUNT(*)”
Training Scriptcase di Indonesia, kunjungi www.OwenSolution.com
BalasHapus