Upload
helmi-herbiyanto
View
214
Download
0
Embed Size (px)
Citation preview
8/16/2019 Modul 6 Basis Data
1/6
Laboratorium Teknik Informatika UMM Page 1
PRAKTIKUM BASIS DATA
MODUL 6
OPRATOR JOIN
LABORATORIUM REKAYASA PERANGKAT LUNAK
TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS MUHAMMADIYAH MALANG
2010 -2011
8/16/2019 Modul 6 Basis Data
2/6
Laboratorium Teknik Informatika UMM Page 2
Modul 6
OPRATOR JOIN
I. Tujuan
1. Mengenal dan memahami konsep dasar operator join2. Memahami dan mengimplementasikan Inner Join, Left Outer Join, Right Outer
Join, Full Outer Join,
II. Perlengkapan yang dibutuhkan:
1. Komputer Set (memory >= 1GB, CPU >= PIV atau Linux OS)2. Oracle XE
III. Dasar Teori
A.
Oprator JOIN
Oprator join adalah mengambil dua relasi dan mengembalikan nilai yang berasal dari
relasi tersebut, Operasi ini biasanya menjadi expresi subquery dari klausa FROM,.
Setiap variasi dari operasi dalam SQL terdiri dari tipe join dan kondisi join. Kondisi
join mendifinisikan record dari dua relas i yang sama, dan atribut apa yang muncul
dari hasil join. Tipe join mendefinisikan bagaimana record dari setiap relasi yang
tidak sama dengan record lain dalam relasi lainnya.
INNER JOIN
Merupakan operasi paling umum digunakan dalam aplikasi dan dapat dianggap
sebagai tipe join yang standart. Inner join menghasilkan table baru dengan
menggabungkan nilai-nilai kolom dari dua tabel (A dan B) didasarkan pada predikat
join
SELECT *
FROM employees INNER JOIN departments
ON employees.Department_ID =
departments.Department_ID;
SELECT *
FROM employees, departments
WHERE employees.Department_ID =
departments.Department_ID;
8/16/2019 Modul 6 Basis Data
3/6
Laboratorium Teknik Informatika UMM Page 3
Query di atas merupakan notasi join secara implisit yang penggabungankan dua table
atau lebih.
EQUI-JOIN
Adalah join yang berbasis perbandingan equal.
NATURAL JOIN
Merupakan operasi equijoin dengan memperlakukan nama-nama kolom yang sama
sebagai kolom penghubung antara table.
CROSS JOIN
Merupakan perkalian kartesian dalam pemakaian klausa FROM.
SELECT *
FROM employees,job_history
where employees.employee_id = job_history.employee_id;
SELECT *
FROM employees NATURAL JOIN departments;
SELECT *
FROM employees CROSS JOIN departments;
SELECT *
FROM employees, departments;
8/16/2019 Modul 6 Basis Data
4/6
Laboratorium Teknik Informatika UMM Page 4
LEFT OUTER JOIN
Merupakan penggabungan table dimana hasil penggabungan table A dan B adalah
hasil inner join kedua table tersebut ditambah dengan record dari tabel yang kiri
(dalam hal ini adalah table A).
RIGHT OUTER JOIN
Merupakan kebalikan dari left outer join dimana hasil penggabungan table A dan Bselalu record tabel yang kanan (dalam hal ini adalah table B).
CREATE TABLE employee (
LastName varchar(25),
DepartmentID int
);
CREATE TABLE department (
DepartmentID int UNIQUE,
DepartmentName varchar(25)
);ALTER TABLE employeeADD CONSTRAINT fk_employee_dept
FOREIGN KEY (DepartmentID)REFERENCES department(DepartmentID);
INSERT INTO department VALUES (31, 'Sales');
INSERT INTO department VALUES (33, 'Engineering');
INSERT INTO department VALUES (34, 'Clerical');
INSERT INTO department VALUES (35, 'Marketing');
INSERT INTO employee VALUES ('Xrobot', 31);
INSERT INTO employee VALUES ('Mugn', 33);
INSERT INTO employee VALUES ('Lesto', 33);
INSERT INTO employee VALUES ('tollo', 34);
INSERT INTO employee VALUES ('nakula', 34);INSERT INTO employee VALUES ('Kamtiez', NULL);
SELECT *
FROM employee LEFT OUTER JOIN department
ON employee.DepartmentID = department.DepartmentID;
SELECT *
FROM employee RIGHT OUTER JOIN department
ON employee.DepartmentID = department.DepartmentID;
8/16/2019 Modul 6 Basis Data
5/6
Laboratorium Teknik Informatika UMM Page 5
FULL OUTER JOIN
Merupakan kombinasi dari left outer join dan right outher join dimana hasil
penggabungan table A dan B jika ada NULL selalu di tampilkan baik kiri maupun
kanan pada table.
SELF-JOIN
Merupakan penggabungan atau join sebuah table dengan table itu sendiri
IV. LANGKAH PRAKTIKUM
Masuklah menggunakan account HR. Kemudian selesaikan permasalahan berikut :
1.
Tuliskan query untuk menampilkan alamat dari setiap departemen. Gunakan tableLOCATIONS dan COUNTRIES untuk menampilkan field- field yang diperlukan.
Gunakan Natural Join untuk menghasilkan tampilan tersebut
2. Direktur menginginkan laporan tentang semua pegawai (employee). Tuliskan sebuah
query untuk menampilkan last_name, department_number, dan department_name dari
setiap pegawai.
3. Direktur menginginkan laporan tentang semua pegawai yang bekerja di ‘Toronto’.
Tampilkan last_name, job, department_number dan department_name untuk semua
pegawai yang bekerja di ‘Toronto’
4. Ciptakan suatu query untuk menampilkan semua nama pegawai beserta nama manager
dari pegawai tersebut.
5.
Dari query yang Anda hasilkan pada nomor 4. Ubah query tersebut, sehingga sekarang
SELECT *FROM employee
FULL OUTER JOIN department
ON employee.DepartmentID = department.DepartmentID;
SELECT F.Employee_ID, F.Last_Name, S.Employee_ID, S.Last_Name,F.JOB_IDFROM Employees F, Employees S
WHERE F.JOB_ID= S.JOB_IDAND F.Employee_ID < S.Employee_ID
ORDER BY F.Employee_ID, S.Employee_ID;
8/16/2019 Modul 6 Basis Data
6/6
Laboratorium Teknik Informatika UMM Page 6
akan muncul semua nama pegawai beserta nama managernya termasuk pegawai yang
bernama ‘King’ yang tidak punya manager.
6. Tuliskan suatu query untuk menampilkan last_name, department_number dan
department_name dari semua pegawai yang bekerja di departemen yang sama dengan
pegawai yang bernama ‘King’
7. Direktur ingin mengetahui siapa saja pegawai yang direkrut setelah pegawai yang
bernama ‘Davies’ bekerja di perusahaan tersebut. Tuliskan query untuk memenuhi
permintaan tersebut.
8. Direktur ingin mengetahui nama-nama pegawai yang direkrut perusahaan sebelum
manager dari pegawai tersebut direkrut. ( hired_date employee < hired_date manager ).
Tuliskan query untuk memenuhi permintaan tersebut.
V. TUGAS PRAKTIKUM
Dari contoh kasus yang Anda dapatkan, ciptakan masing-masing 1 query untuk jenis join
berikut :
1. CROSS JOIN
2. INNER JOIN ( NATURAL JOIN )
3. INNER JOIN ( JOIN … USING… )
4. INNER JOIN ( JOIN … ON … )
5.
LEFT-OUTER JOIN
6. RIGHT-OUTER JOIN
7. FULL-OUTER JOIN
8. SELF JOIN