petunjuk umum : untuk latihan hari ini gunakan user...
TRANSCRIPT
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 :
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 (+)
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