petunjuk umum : untuk latihan hari ini gunakan user...

3
Praktikum Pengolahan Basis Data – Nandang Hermanto Praktikum 5 Mata Kuliah : Sistem Pengolahan Basis Data Dosen : Nandang Hermanto Query tingkat lanjut : o Query dari banyak tabel o Join Petunjuk umum : untuk latihan hari ini gunakan user HR 1. Query dari banyak tabel Contoh kasus : bagaimana caranya jika ingin mendapatkan data yang berupa first_name,last_name , salary (berasal dari table employees), department_id (berasal dari table employees dan table departments), department_name (dari table departments) Perintah diatas akan mendapatkan data berupa cartesian product dari tabel employees dan tabel departments (jumlah barisnya adalah hasil kali jumlah baris table employees dan jumlah baris table departments) Cartesian product dibentuk pada saat : Kondisi join diabaikan Kondisi join tidak valid Semua baris dalam table pertama dijoinkan ke semua baris dalam table kedua Agar data yang diperoleh menjadi lebih informatif maka lakukan langkah berikut untuk mendapatkan data dari beberapa tabel : Tentukan judul kolom yang akan ditampilkan berikut tabel tempat kolom tersebut berada Cari kunci relasi antara tabel tersebut Untuk contoh kasus diatas maka dapat diperoleh data sebagai berikut : Judul kolom yang akan ditampilkan first_name,last_name ,salary (berasal dari table employees), department_name (dari table departments) Kunci relasi antara teble employees dan departments adalah department_id Maka perintah querynya menjadi :

Upload: others

Post on 10-Nov-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Petunjuk umum : untuk latihan hari ini gunakan user HRelearning.amikompurwokerto.ac.id/index.php/download/materi/0613… · ð•Query tingkat lanjut : o Query dari banyak tabel o

Praktikum Pengolahan Basis Data – Nandang Hermanto

Praktikum 5Mata Kuliah : Sistem Pengolahan Basis Data

Dosen : Nandang Hermanto Query tingkat lanjut :

o Query dari banyak tabelo Join

Petunjuk umum : untuk latihan hari ini gunakan user HR

1. Query dari banyak tabelContoh kasus :

bagaimana caranya jika ingin mendapatkan data yang berupafirst_name,last_name , salary (berasal dari table employees),department_id (berasal dari table employees dan table departments),department_name (dari table departments)

Perintah diatas akan mendapatkan data berupa cartesian product dari tabel employees dantabel departments (jumlah barisnya adalah hasil kali jumlah baris table employees danjumlah baris table departments)

Cartesian product dibentuk pada saat :Kondisi join diabaikanKondisi join tidak validSemua baris dalam table pertama dijoinkan ke semua baris dalam table kedua

Agar data yang diperoleh menjadi lebih informatif maka lakukan langkah berikut untukmendapatkan data dari beberapa tabel : Tentukan judul kolom yang akan ditampilkan berikut tabel tempat kolom tersebut

berada Cari kunci relasi antara tabel tersebut

Untuk contoh kasus diatas maka dapat diperoleh data sebagai berikut :

Judul kolom yang akan ditampilkan first_name,last_name ,salary (berasal dari tableemployees), department_name (dari table departments)

Kunci relasi antara teble employees dan departments adalah department_id

Maka perintah querynya menjadi :

Page 2: Petunjuk umum : untuk latihan hari ini gunakan user HRelearning.amikompurwokerto.ac.id/index.php/download/materi/0613… · ð•Query tingkat lanjut : o Query dari banyak tabel o

Praktikum Pengolahan Basis Data – Nandang Hermanto

Catatan : untuk judul kolom yang berasal dari beberapa tabel harus disebutkan asal tabelnnya,contoh diatas emplpyees.depertment_id

Latihan :

Tampilkan first_name,last_name,salary,Job_tittle Tampilkan first_name,last_name,salary,Department_name,Job_tittle Tampilakan Region_name,Country_name,street_address,city2. Join

Kondisi join dan jenis join Berdasarkan pembandinga. Equi Join : join antara dua tabel menggunakan tanda =

SELECT employee_id, department_id, department_nameFROM EMPLOYEES, DEPARTMENTSWHERE EMPLOYEES.Department_id = DEPARTMENTS.Department_id;

SELECT e.employee_id, e.last_name, e.department_id, d.location_idFROM employees e, departments dWHERE e.department_id = d.department_id;

Join lebih dari 2 tabel :

select first_name,department_name,job_title fromemployees,departments,jobswhere employees.department_id = departments.department_idand employees.job_id = jobs.job_id;

b. Non Equi Join : join antara dua tabel menggunakan tanda selain = seperti <,>,between dan tandapenghubung lain

select first_name,salary,jobs.job_title,jobs.min_salary,jobs.max_salary fromemployees,jobswhere employees.salary between jobs.min_salary and jobs.max_salaryorder by employees.first_name;

Kondisi join dan jenis join Berdasarkan Data yang dihasilkana. Inner-Join : hanya menampilkan data yang bersesuaian atau data yang memenuhi kondisi saja.

Data yang tidak mempunyai pasangan pada tabel lawannya tidak akan munculb. Outter join :

Left Outer Join : Menampilkan semua data yang ada di tabel kiri dan hanya data yangbersesuaian di tabel kanan, jika tabel kiri tidak mempunyai lawan di tabel kanan maka tabel kananakan diisi dengan null

select first_name,department_name from employees,departmentswhere employees.department_id = departments.department_id (+)

Page 3: Petunjuk umum : untuk latihan hari ini gunakan user HRelearning.amikompurwokerto.ac.id/index.php/download/materi/0613… · ð•Query tingkat lanjut : o Query dari banyak tabel o

Praktikum Pengolahan Basis Data – Nandang Hermanto

Right Outer Join : Menampilkan semua data yang ada di tabel kanan dan hanya data yangbersesuaian di tabel kiri, jika tabel kanan tidak mempunyai lawan di tabel kiri maka tabel kiri akandiisi dengan null

select first_name,department_name from employees,departmentswhere employees.department_id (+) = departments.department_id

Full Join : gabungan dari left outer join dan right outer join

select first_name,department_name from employees,departmentswhere employees.department_id (+) = departments.department_idunionselect first_name,department_name from employees,departmentswhere employees.department_id = departments.department_id (+)

c. Self Join : join yang dilakukan antar kolom dalam satu tabel

select pegawai.first_name as pegawai,manager.first_name as managerfrom employees pegawai,employees managerwhere pegawai.manager_id=manager.employee_id;

TUGAS

Cari perintah join menggunakan Syntax Join ANSI/SQL