Modul 6 Basis Data

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