Minggu, 19 Oktober 2014

Laapooraan 5

BAB I
LANDASAN TEORI

Agregate Operator
Agregate digunakan untuk melakukan perhitungan menjadi sebuah nilai dari beberapa input. Adapun fungsi agregate yang ada dalam PostgreSQL diantaranya :

1. COUNT(*)
Untuk menghitung jumlah baris. Struktur querynya :
SELECT COUNT(*) FROM [NAMA_TABEL];

 2.  SUM(NAMA KOLOM)
Untuk menghitung penjumlahan data.Struktur querynya :
SELECT SUM(NAMA_KOLOM) FROM [NAMA_TABEL];

3. MAX(NAMA_KOLOM)
Untuk mencari nilai terbesar. Struktur querynya :
SELECT MAX(NAMA_KOLOM) FROM [NAMA_TABEL];

4. MIN(NAMA KOLOM)
Untuk mencari nilai terkecil. Struktur querynya :
SELECT MIN(NAMA_KOLOM) FROM [NAMA_TABEL];

5. AVG(NAMA KOLOM)
Untuk mencari nilai rata-rata. Struktur querynya :
SELECT AVG(NAMA_KOLOM) FROM [NAMA_TABEL];

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];

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 querynya :
SELECT (NAMA_KOLOM) FROM [NAMA_TABEL] GROUP BY [NAMA_KOLOM] HAVING KONDISI;

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;
Maka hasilnya seperti ini :
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. Contoh query :
CREATE VIEW [NAMA_TABEL] VIEW AS QUERY;
Catatan : Query diatas merupakan query untuk menampilkan data menggunakan query sql select.



BAB II
HASIL PRAKTIKUM

Soal 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.
Jawaban
Karena data tabel sudah ada dan melebihi dari yang dibutuhkan, maka kita tidak perlu membuat lagi. Cukup pakai saja yang kemaren. Langsung saja, query yang dipakai adalah sebagai berikut :
  • Untuk mencari nilai nim mahasiswa terkecil : select min(nim_mah) from mahasiswa;
  • Untuk mencari nilai nim mahasiswa terbesar : select max(nim_mah) from mahasiswa;
  • Untuk mencari rata - rata nilai nim mahasiswa : select avg(nim_mah) from mahasiswa; 
Hasil untuk SQL Shell :
 Dan untuk hasil query dari mySQL :

Soal 2
Tampilkan rata-rata id atau nim mahasiswa yang data nimnya lebih dari 12.
Jawaban
Untuk menampilkan nilai rata - rata seperti nomor 1 tadi tapi data nim mahasiswanya yang lebih dari 12 querynya seperti ini :
  • select avg(nim_mah) from mahasiswa where nim_mah > 12; 
 Dan hasilnya bisa dilihat seperti berikut :
SQL Shell

mySQL

Soal 3
Tampilkan jumlah mahasiswa berdasarkan fakultas. Sehingga hasilnya seperti berikut: 
Jawaban
Untuk membuat tampilan mahasiswa seperti gambar tersebut, kita menggunakan query seperti ini :
  • select nama_fak, count(*)from mahasiswa,fakultas where mahasiswa.id_fak=fakultas.id_fak group by nama_fak;
Hasilnya adalah :
Hasil SQL Shell
Hasil mySQL

Soal 4
Tampilkan  seperti nomor 3 dengan persyaratan jumlah mahasiswa yang lebih dari sama dengan 2 saja yang ditampilkan.
Jawaban
Untuk menjawab soal nomor 4, yang harus dilakukan yaitu menggunakan query seperti ini :
  • select nama_fak, count(*)from mahasiswa,fakultas where mahasiswa.id_fak=fakultas.id_fak group by nama_fak having count(*) >=2;
 Hasil dari pekerjaannya adalah sebagai berikut :
Hasil SQL Shell
mySQL

Soal 5
Tampilkan data mahasiswa dengan persyaratan, jika jenis kelaminnya “L” maka
tertulis laki-laki dan bila “P” maka tertulis perempuan.
Jawaban
Nah, kalau seperti itu, tinggal pakai query dari CASE. Seperti ini :
  •  select no_id, nama, alamat, no_telp, case when gender='p' then 'perempuan' else 'laki-laki' end as umur from mahasiswa;
Didapat hasilnya seperti ini :
SQL Shell
mySQL

Soal 6
Buatlah view untuk query  penampilan data mahasiswa, fakultas. Ambil berdasarkan nim, nama mahasiswa, nama fakultas.
Jawaban
Yang harus dilakukan pertama kali adalah membuat tabel VIEW. Berikut query untuk menampilkan data nim, nama mahasiswa, dan nama fakultas berdasar tabel mahasiswa, fakultas :
  • create view pelajar as select no_id,nama,nama_fak from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak;
  • select*from pelajar;
Dan bisa dilihat hasilnya seperti ini :
SQL Shell

mySQL



BAB III
PENUTUP

Perbedaan
 MySQL
  • Untuk query COUNT, MIN, dan MAX, tidak boleh ada spasi. Misalkan "select count (*) from mahasiswa;" akan menghasilkan eror. Maka seharusanya "select count(*) from mahasiswa;". Begitu pula berlaku untuk query MIN dan MAX.
SQL Shell
  •   Kalau MySQL tidak memakai spasi, nah, kalau SQL bebas. Bisa pakai spasi maupun tidak. Dan hasilnya juga sama.
Persamaan
 MySQL dan SQL Shell
  • Dari semua hasil, query dari MySql bisa digunakan ke SQL Shell.

Kesimpulan
Agregate Operator
Digunakan untuk melakukan penghitungan menjadi sebuah nilai dari beberapa nilai input.
  • Count(*) : untuk menghitung jumlah baris.
  •  Sum(nama_kolom) : untuk menghitung penjumlahan data.
  • Max(nama_kolom) : untuk mencari nilai data terbesar.
  • Min(nama_kolom) : untuk mencari nilai data terkecil.
  • Avg(nama_kolom) : untuk mencari nilai rata - rata dari suatu data.
Group By
Merupakan fungsi yang digunakan untuk melakukan pengelompokan dari perintah SELECT.

Having
Kegunaannya adalah untuk menentukan kondisi bagi Group By.


Case
Kata Where menggunakan perbandingan untuk mengontrol pemilihan data, sedangkan Case perbandingan dalam bentuk output kolom.

View
Suatu relasi virtual yang tidak perlu ada database tapi dapat diproduksi atas permintaan pemakai tertentu, pada ketika permintaan.

Daftar Pustaka
Modul Praktikum BAB V.pdf

Tidak ada komentar:

Posting Komentar