A. DASAR TEORI
Desain Basis Data memiliki banyak sekali perintah yang bisa kita gunakan untuk mendesain Basis Data tersebut. Intinya kita diberikan banyak sekali perintah dan operator yang bisa kita gunakan agar basis data yang kita buat lebih mudah untuk kita kases lagi. Disini kita akan membahas sedikit tentang Agregasi dan View
1. AGREGASI
Agregasi adalah salah satu perintah yang bisa 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. Ada beberaapa fungsi agregasi yang di sediakan ;
Untuk menggunakan peritah yang mengandung agregasi kita bisa menggunakan perintah SELECT, berikut query dasar perintah agregasi :
select count(*) from namatabel;select max(namakolom) from namatabel;select min(namakolom) from namatabel;select avg(namakolom) from namatabel;
2. 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;
Berikut ini query yang diunakan bersama dengan salah satu perintah Agregasi
select namakolom, count(*) from namatabel group by namakolom;
//menggunakan perintah agregasi count
3. 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 :
select namakolom, sum(namakolom) from namatabel group by namakolom having sum(namakolom) = kondisi;
4. CASE
Walaupun SQL bukanlah bahasa perograman, tapi dalam prosesnya kita dapat bebas mengontrol data untuk kita tampilkan kembali. Dalam perintah SELECT kita mengenal perintah WHERE yang digunakan menentukan kondisi dari data yang ingin kita tampilkan, sedangkan CASE perbandingan dalam bentuk output kolom. Jadi intinya penggunaan CASE untuk menampilkan data tersendiri berupa kolom baru dengan data dari kolom sebelumnya yang kita manipilasi isisnya.Struktur didalam select seperti berikut :
CASE WHEN condition THEN result[WHEN ...][ELSE result] END
5. 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.
B. PRAKTIKUM
untuk mempraktikkan ini, saya menggunakan DBMS MySQL
yang pertama, menampilkan data pada tabel mahasiswa
Kemudian cari nim atau id mahasiswa yang paling kecil, paling besar dan rata-ratanya.
yang kedua, mencari rata-rata id atau nim mahasiswa yang data nimnya lebih dari 14
yang ketiga, menjumlakan maasiswa berdasarkan fakultas. sehingga akan menghasilkan seperti ini:
Nama Fakultas COUNT(*)
SAINTEK 2
PSIKOLOGI 1
yang keempat, seperti nomor 3 dengan persyaratan jumlah mahasiswa yang lebih dari sama dengan 2 saja yang ditampilkan.
yang ke lima, Tampilkan data mahasiswa dengan persyaratan, jika jenis kelaminnya “L” maka tertulis laki-laki dan bila “P” maka tertulis perempuan.
yang ke enam, membuat view untuk query penampilan data mahasiswa, fakultas. ambil berdasarkan nim, nama mahasiswa, nama fakultas.
C. PERBEDAAN PostgreSQL dan MySQL
Pada perintah Agregasi dan View ini kedua DBMS sama sam memilikinya, dan SQL dari kedua DBMS ini juga sama. Tetapi ada beberapa ketelitian yang harus kita perhatikan dalam menuliskan query pada kedua DBMS ini, antara lain yaitu pemberian tanda koma (,) seperti pada perintah COUNT(*) dan CASE. Yang biasanya setelah perintah SELECT tidak ada koma, untuk penggunaan perintah COUNT(*) dan CASE kita harus memeberikannya. Kemudian pada perintah agregasi seperti MIN, MAX dan AVG. Apabila kita salah dalam memberikan spasi pada query tersebut juga akan memberikan efek.
untuk mempraktikkan ini, saya menggunakan DBMS MySQL
yang pertama, menampilkan data pada tabel mahasiswa
select * from mahasiswa;
Kemudian cari nim atau id mahasiswa yang paling kecil, paling besar dan rata-ratanya.
select min(nim_mah) from mahasiswa;
select max(nim_mah) from mahasiswa;
select avg(nim_mah) from mahasiswa;
yang kedua, mencari rata-rata id atau nim mahasiswa yang data nimnya lebih dari 14
select avg(nim_mah) from mahasiswa where nim_mah>14;
yang ketiga, menjumlakan maasiswa berdasarkan fakultas. sehingga akan menghasilkan seperti ini:
Nama Fakultas COUNT(*)
SAINTEK 2
PSIKOLOGI 1
select nama_fak, count(*) from mahasiswa, fakultas where fakultas.id_fak=mahasiswa.id_fak group by nama_fak;
yang keempat, seperti nomor 3 dengan persyaratan jumlah mahasiswa yang lebih dari sama dengan 2 saja yang ditampilkan.
select nama_fak, count(*) from mahasiswa, fakultas where fakultas.id_fak=mahasiswa.id_fak group by nama_fak having count > 3;
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;
yang ke enam, membuat view untuk query penampilan data mahasiswa, fakultas. ambil berdasarkan nim, nama mahasiswa, nama fakultas.
create view mahasiswa_baru as select nim_mah, nama_mah, nama_fak from mahasiswa, faultas where mahasiswa.id_fak=fakultas.id_fak;
C. PERBEDAAN PostgreSQL dan MySQL
Pada perintah Agregasi dan View ini kedua DBMS sama sam memilikinya, dan SQL dari kedua DBMS ini juga sama. Tetapi ada beberapa ketelitian yang harus kita perhatikan dalam menuliskan query pada kedua DBMS ini, antara lain yaitu pemberian tanda koma (,) seperti pada perintah COUNT(*) dan CASE. Yang biasanya setelah perintah SELECT tidak ada koma, untuk penggunaan perintah COUNT(*) dan CASE kita harus memeberikannya. Kemudian pada perintah agregasi seperti MIN, MAX dan AVG. Apabila kita salah dalam memberikan spasi pada query tersebut juga akan memberikan efek.




0 komentar