dml-query aggregate function
TRANSCRIPT
SQL – QUERY
AGGREGATE FUNCTION
Tujuan Instruksional Umum:
1. Mahasiswa mengetahui dan menggunakan SQL sebagai bahasa yang dipergunakan
untuk mengakses DBMS
2. Mempergunakan fasilitas yang ada pada DBMS untuk menghasilkan informasi yang
diperlukan
a. Mencari informasi dari sebuah tabel dengan batasan tertentu
b. Mencari informasi dari hubungan antar tabel denngan batasan tertentu
DML merupakan bahasa yang digunakan untuk:
Mengolah basis data yaitu dengan memanipulasi tupel-tupel di basis data relasional
Melakukan query (sederhana, join, bertingkat)
Memanggil fungsi-fungsi agregasi
SQL menyediakan 4 statemen untuk memanipulasi data:
SELECT, untuk query (meminta informasi) dari basis data
INSERT, untuk menyisipkan data baru ke tabel pada sebuah basis data
UPDATE, untuk memodifikasi data yang telah ada pada tabel pada sebuah basis
data
DELETE, untuk menghapus data dari tabel pada sebuah basis data
Select digunakan hanya untuk mengambil data dari basis data tanpa merubahnya,
sedangkan Insert, Update dan Delete digunakan untuk mengubah data di tabel.
Pada bagian ini yang akan dibahas adalah perintah yang berhubungan dengan operasi yang
berhubungan dengan pengambilan data dari basis data tanpa merubahnya yaitu operasi
Select yaitu sub bagian Aggregate Function. Sedangkan operasi yang
mengubah/manipulasi data di tabel yaitu Insert, Update dan Delete telah dibahas pada SQL-
DML-Manipulasi.
AGGREGATE FUNCTION
Aggregate Function (fungsi agregasi) merupakan fungsi-fungsi yang disediakan oleh SQL
untuk memudahkan pengguna melakukan query
Fungsi agregasi antara lain menghitung banyaknya record, total nilai suatu atribut, rata-rata
nilai atribut, nilai terbesar dan nilai terkecil suatu atribut.
Fungsi agregasi hanya dapat diterapkan di klausa SELECT dan klausa HAVING. Selain itu
tidak dibenarkan. Fungsi agregasi hanya diberlakukan pada tabel hasil query. Contohnya,
nilai jam kerja terbesar untuk pegawai pada proyek Produce belum tentu sama dengan nilai
jam kerja untuk semua pegawai.
Fungsi-fungsi Agregasi:
COUNT, menghitung jumlah record (tuple) hasil query yang nilainya bukan NULL
SUM, menghitung nilai total suatu atribut numeric hasil query
MAX, mendapatkan nilai terbesar suatu atribut hasil query
MIN, mendapatkan nilai terkecil suatu atribut hasil query
AVG, mendapatkan nilai rata-rata suatu atribut hasil query
Count (*) adalah kasus penggunaan COUNT secara khusus. Fungsi count(*) adalah untuk
menghitung semua baris ditabel tak peduli nilai NULL atau munculnya duplikasi. Jika kita
ingin menghilangkan duplikasi maka sebelum nama kolom fungsi digunakan klausa
DISTINCT.
Q14: Menghitung banyaknya record pegawai yang bekerja pada departemen
Administration.
Select Count (*)
From employee E, department D
Where E.dno = D.dnumber and D.dname = ‘Administration’;
Query ini untuk menghitung semua pegawai yang bekerja pada departemen
Administration yaitu 3 orang dengan ssn = 999887777, 987654321, dan
9987987987. Walaupun ada tuple yang kosong pada 3 orang ini, maka Count(*)
tetap akan menghitung 3 orang.
ATAU
Select Count (distinct E.fname)
From employee E, department D
Where E.dno = D.dnumber and D.dname = ‘Administration’;
Query ini untuk menghitung jumlah nama depan pegawai yang bekerja pada
departemen Administration yang ada nilainya saja dan menghilangkan duplikasi,
yaitu 3 orang dengan nama depan pegawai = Alicia, Jennifer, dan Ahmad.
Count (*)
3
Count (E.fname)
3
Q15: Menghitung total jumlah jam kerja beserta jem kerja tertinggi, terendah, dan rata-rata
jam kerja pegawai yang mengerjakan proyek ProductY
Select sum (W.hours), max (W.hours), min (W.hours), avg (W.hours)
From works_on W, Project P
Where W.pno = P.pnumber and P.pname = ‘ProductY’;
Sum(W.hours) max(W.hours) min(W.hours) avg(W.hours)
37.5 20 7.5 12.5
EMPLOYEE
FNAME MINIT LNAME SSN BDATE ADDRESS SEX SALARY SUPERSSN DNO pk fk fk
DEPARTMENT
pk fk
DEPT_LOCATION
pk,fk pk
PROJECT
pk fk
WORKS_ON
pk,fk pk,fk
DEPENDENT
ESSN DEPENDENT_NAME SEX BDATE RELATIONSHIP pk, fk pk
Gambar 1. Skema Basis Data COMPANY
DNAME DNUMBER MGRSSN MGRSTARTDATE
DNUMBER DLOCATION
PNAME PNUMBER PLOCATION DNUM
ESSN PNO HOURS
EMPLOYEE
FNAME MINIT LNAME SSN BDATE ADDRESS SEX SALARY SUPERSSN DNO
John B Smith 123456789 09-jan-55 731 Fondren, Houston, TX M 30000 333445555 5
Franklin T Wong 333445555 08-dec-45 638 Voss, Houston, TX M 40000 888665555 5
Alicia J Zelaya 999887777 19-jul-58 3321 Castle, Spring, TX F 25000 987654321 4
Jennifer S Wallace 987654321 20-jun-31 291 Berry, Bellaire, TX F 43000 888665555 4
Ramesh K Narayan 666884444 15-sep-52 975 Are Oak, Humble, TX M 38000 333445555 5
Joyce A English 453453453 31-jul-62 5631 Rice, Houston, TX F 25000 333445555 5
Ahmad V Jabber 987987987 29-mar-59 980 Dallas, Houston, TX M 25000 987654321 4
James E Borg 888665555 10-nov-27 450 Stone, Houston, TX M 55000 null 1
WORKS_ON DEPARTMENT
PROJECT
DEPENDENT DEPT_LOCATION
Gambar 2. Basis Data COMPANY
ESSN PNO HOURS
123456789 1 32.5
123456789 2 7.5
666884444 3 40.0
453453453 1 20.0
453453453 2 20.0
333445555 2 10.0
333445555 3 10.0
333445555 10 10.0
333445555 20 10.0
999887777 30 30.0
999887777 10 10.0
987987987 10 35.0
987987987 30 5.0
987654321 30 20.0
987654321 20 15.0
888665555 20 Null
DNAME DNUMBER MGRSSN MGRSTARTDATE
Research 5 333445555 22-may-78
Administration 4 987654321 01-jan-85
Headquarters 1 888665555 19-jan-71
PNAME PNUMBER PLOCATION DNUM
ProductX 1 Bellaire 5
ProductY 2 Sugarland 5
Produce 3 Houston 5
Computerization 10 Stafford 4
Reorganization 20 Houston 1
Newbenefits 30 Stafford 4
DNUMBER DLOCATION
1 Houston
4 Stafford
5 Bellaire
5 Sugarland
5 Houston
ESSN DEPENDENT_NAME SEX BDATE RELATIONSHIP
333445555 Alice F 05-apr-76 Daughter
333445555 Theodore M 25-oct-73 Son
333445555 Joy F 03-may-46 Spouse
987654321 Abner M 29-feb-32 Spouse
123456789 Michael M 01-jan-78 Son
123456789 Alice F 31-dec-78 Daughter
123456789 Elizabeth F 05-may-57 Spouse