8
LAPORAN BASIS DATA LANJUTAN Sesion IX Ekspresi Query Disusun Oleh : Evan Enza Rizqi IK - 2A 3.34.12.0.10 PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN ELEKTRO POLITEKNIK NEGERI SEMARANG

Sesion IX

Embed Size (px)

Citation preview

Page 1: Sesion IX

LAPORAN BASIS DATA LANJUTAN

Sesion IX

Ekspresi Query

Disusun Oleh :

Evan Enza Rizqi

IK - 2A

3.34.12.0.10

PROGRAM STUDI TEKNIK INFORMATIKA

JURUSAN ELEKTRO

POLITEKNIK NEGERI SEMARANG

2013

Page 2: Sesion IX

Sesion IX (Ekspresi Query)

Ekspresi Kondisional Ekspresi Kondisional menggunakan logika IF-THEN-ELSE di dalam SQL Statement. Digunakan dua cara, yaitu : • Ekspresi CASE • Fungsi DECODE

Ekspresi CASE Ekspresi CASE mempunyai bentuk umum sebagai berikut :

Contoh : select first_name, last_name, job_id, salary, case job_id when 'IT_PROG' then 1.10*salary when 'ST_CLERK' then 1.20*salary when 'SA_REP' then 1.30*salary else salary end "revised_salary" from employees;

Page 3: Sesion IX

Fungsi DECODE

Fungsi DECODE menyediakan fasilitas pencocokan seperti yang dikerjakan oleh CASE atau

IF-THEN-ELSE.

Sintak (penulisan) fungsi DECODE :

Contoh :

select first_name, last_name, job_id, salary, decode (job_id, 'IT_PROG', 1.10*salary, 'ST_CLERK', 1.20*salary, 'SA_REP', 1.30*salary, salary) revised_salary from employees;

Page 4: Sesion IX

NAMA ALIAS Memberikan nama alias pada keluran kolom menggunakan AS. Contoh : Menampilkan jumlah gaji seluruh pegawai yang di nama aliaskan sebagai total_salary.

Menampilkan jumlah gaji (di aliaskan sebagai total_salary) per nama jabatan pegawai.

Page 5: Sesion IX

Soal bab 9 1. Tampilkan jumlah gaji (di aliaskan sebagai total_salary) per nama jabatan pegawai

dan jumlah gajinya di atas 30000. Perintah SQL :select j.job_title as "Nama Jabatan Pegawai", sum(e.salary) as total_salary from employees e, jobs j where e.job_id = j.job_idhaving sum(e.salary) > 30000group by j.job_title;

Hasil :

2. Tampilkan nama departemen dan jumlah departemen (di aliaskan sebagai total) yang berada di negara Inggris.

Perintah SQL :select d.DEPARTMENT_NAME as "Nama Departemen", count(l.COUNTRY_ID) as "Jumlah Departemen"from DEPARTMENTS d, LOCATIONS lwhere d.LOCATION_ID = l.LOCATION_ID and l.COUNTRY_ID='UK'group by d.DEPARTMENT_NAME, l.COUNTRY_ID

Hasil :

3. Buat query yang menampilkan nama dan jumlah komisi, jika komisi sama dengan NULL ganti dengan keterangan “Tidak ada Komisi” dan beri judul “Komisi”.

Perintah SQL :

select first_name as "Nama", decode(commission_pct, null, 'tidak ada komisi') komisi from employees;

Page 6: Sesion IX

Hasil :

4. Tampilkan nama pegawai dan jumlah gaji yang ditampilkan dengan symbol ‘*’, tiap satu ‘*’ mewakili ratusan dollar.Perintah SQL :

select first_name as "Nama Pegawai" , salary/100 || '*'as "Jumlah Gaji" from employees

Hasil :

5. Gunakan fungsi DECODE untuk menampilkan nilai grade semua pegawai berdasarkan pada nilai kolom JOB_ID, dengan ketentuan sebagai berikut :

Page 7: Sesion IX

Perintah SQL :

select job_id as Job, decode (job_id, 'AD_PRES','A', 'ST_MAN','B', 'IT_PROG' , 'C', 'SA_REP', 'D', 'ST_CLERK','E', '0') as Grade from jobs;

Hasil :