Home » Perkuliahan » Basis Data » Belajar SQL dalam DB2 Yukkk…

Belajar SQL dalam DB2 Yukkk…

4 December 2013

Semangat lagi ahh…

Belajar Basis Data tidak lepas dari yang namanya SQL. SQL merupakan sesuatu yang sangat penting dalam pembuatan Sistem  Informasi… bisa dikatakan sesuatu banget…he..he.. mantebbb tho..??.. Karena banyak aplikasi Database hanya sekedar meng-input-kan data dan menampilkan data kembali, padahal Sistem Informasi gunanya untuk mengolah data sehingga diperoleh informasi yang berguna.

Minimal Ada 3 (tiga) parameter suatu aplikasi Database bisa disebut Sistem Informasi, yaitu:
1. Maintenance Data
2. Transaksi
3. Pembuatan Laporan

Sebenarnya ada tambahan untuk pengaturan hak akses, yaitu Login. Nah berarti ada 4 (empat) hal suatu aplikasi bisa disebut  sistem informasi. Di dalam masing-masing parameter bisa sangat detail sesuai kebutuhan dalam suatu institusi.

Ayo.. ada yang belum tahu SQL itu apa ???…  SQL memiliki kepanjangan Structured Query Language. SQL merupakan bahasa yang digunakan hampir seluruh DBMS (Database Management Systems), antara lain digunakan dalam Oracle, DB2 dari IBM, MS SQL Server dan MS Acces dari Microsoft, PostgreSQL dan My SQL yang Open Source dan berbagai macam DBMS di dunia.  Macam-macam SQL antara lain DDL (Data Definition Language) dan DML (Data Manipulation Language),  Dari beberapa DBMS terkadang ada sql agak berbeda, namun tdk usah kawatir biasanya berbagai DBMS menyediakan informasi terkait dengan type data, query dan lain-lain yang cukup banyak di halaman webnya.
Nah ini adalah beberapa contoh query (DML) yang diterapkan untuk database SAMPLE bawaan dari DBMS DB2..Pertanyaan berikut berdasarkan dua tabel yaitu tabel Employee dan Empprojact sebagai berikut:

employee

dan

empprojact

yang merelasikan dua tabel tersebut adalah EmpNo.  Yuk kita pelototi sambil minum kopi…:)

1. Dapatkan job dan jumlah masing-masing job yang dimiliki oleh perusahaan (urut berdasar jumlah job besar)?

select job, count(job) as Number_Job
from employee
group by job
order by Number_Job desc;

Catatan: Jika ingin menampilkan kolom dari suatu tabel dan digabung dengan fungsi agregasi maka tambahkan group by dan ketikan kolom-kolom yang ditampilkan seperti contoh 1.

2. Tampilkan  emp_no, first name, Salary, bonus dan comm dari  tabel employee !

select empno,firstnme,(salary+bonus+comm) as total
from employee
order by total desc;

3. Dapatkan  empno, first name dan yang memiliki  take home pay terbanyak (10) !

select empno,firstnme, (salary+bonus+comm) as take_home_pay
from employee
order by total desc
fetch first 10 rows only;

Cara lain:

select empno, firstnme, (salary+bonus+comm) as take_home_pay
from employee
order by gaji desc
limit 10;

Catatan: dalam DB2 tidak dikenal “top + angka” yang biasa digunakan dalam Ms SQL Server atau Ms Access. Gunakan limit atau fetch first + angka+ rows only.

4. Dapatkan empno, fname dan yang memiliki take_home_pay  terbanyak!

select empno,firstnme,(salary+bonus+comm) as total
from employee
where (salary+bonus+comm) =
(select max(salary+bonus+comm) from employee);

Cara lain :
Select empno, firstnme, (salary+bonus+comm) as take_home_paay
From employee
order by gaji desc
limit 1;

5.  Dapatkan empno, fname dan salary terendah!

Select empno, firstnme, salary
From employee
Where salary = (select min(salary) from employee);

6. Dapatkan empno, fname dan salary antara 50.000 sampai 80.000 dollar!

select empno, firstnme, salary
from employee
where salary between 50000 and 80000;

7. Dapatkan empno, firstname, jumlah proyek yang pernah ditangani urutkan berdasar jumlah proyek yang paling banyak !

select a.empno, e.firstnme, count (distinct a.projno)
as no_proj
from employee e, empprojact a
where a.empno = e.empno
group by a.empno, e.firstnme
order by no_proj desc;

8. Dapatkan empno, firstname pegawai yang belum pernah menangani proyek !

Select e.empno, e.firstnme
From employee e full outer join empprojact a on e.empno=a.empno
group by e.empno, e.firstnme
having count(a.projno) = 0;

Cara lain:

Select e.empno, e.firstnme
From employee e
Where e.empno not in (select empno from empprojact)

Ehmmm… selain dipelototi, perlu dipahami dan dicoba ya.. semoga bisa untuk inspirasi.. Terimakasih..

Basis Data