Jbptunikompp GDL Andriherya 18491 7 Pertemua N PDF
Jbptunikompp GDL Andriherya 18491 7 Pertemua N PDF
JOIN
1 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
CLASSICMODELS
2 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
CLASSICMODELS
3 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
Jenis Join
4 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
5 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
…
7 Rows
23 Rows
6 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
CONTOH 3:
SELECT e.EmployeeNumber, e.LastName, e.OfficeCode,
o.OfficeCode, o.City, o.Country
FROM employees e INNER JOIN offices o; Hasil Eksekusi
7 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
9 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
23 Rows
Field yang Sama
11 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
NATURAL JOIN
12 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
NATURAL JOIN
SELECT e.EmployeeNumber, e.LastName, e.OfficeCode,
o.OfficeCode, o.City, o.Country
FROM employees e NATURAL JOIN offices o;
23 Rows
13 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
CLAUSA USING()
MENJADI :
SELECT e.EmployeeNumber, e.LastName, e.OfficeCode,
o.OfficeCode, o.City, o.Country
FROM employees e JOIN offices o
USING(OfficeCode);
14 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
CLAUSA USING()
15 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
16 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
Tabel T1 Tabel T2
Kondisi 2
(T1.b = T2.b)
17 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
CONTOH 2:
SELECT *
FROM t1 JOIN t2
Kolom duplikat tidak ditampilkan
ON t1.a = t2.a and t1.b = t2.b;
CONTOH 3:
SELECT *
FROM t1 NATURAL JOIN t2;
CONTOH 3:
SELECT *
FROM t1 JOIN t2 USING (a,b)
18 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
Contoh Kasus :
Berdasarkan skema relasi yang ada di halaman 3, tampilkan
data nomor pesanan(, nama pelanggan dan nama pegawai
yang menangani pemesanan tersebut
326 Rows
19 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
Solusi :
• Query yang dibutuhkan membutuhkan 3 field yaitu
OrderNumber dari tabel Orders, CustomerName dari tabel
Customers dan FirstName dari tabel Employees.
• Berdasarkan skemar relasi, ketiga tabel tersebut
dihubungkan dengan 2 relasi yaitu :
– Orders.CustomerNumber Customers.CustomerNumber
– Customer.salesRepEmployeeNumber Employees.EmployeesNumber
20 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
21 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
SELF JOIN
22 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
SELF JOIN
SOLUSI 1 (MENGGUNAKAN KOMA DAN WHERE):
SELECT peg.EmployeeNumber NoPegawai,
concat_ws(' ',peg.firstName,peg.lastName) NamaPegawai,
peg.reportsTo,
ats.EmployeeNumber NoAtasan,
concat_ws(' ',ats.firstName,ats.lastName) NamaAtasan
FROM employees peg, employees ats
WHERE peg.reportsTo = ats.employeeNumber
23 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
SELF JOIN
22 Rows
Pegawai 1002 Diane Murphi tidak ditampilkan karena nilai field reportsTo bernilai NULL,
berarti dia adalah pegawai tertinggi (tidak mempunyai atasan).
24 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
OUTER JOIN
25 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
26 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
Pegawai yang
mempunyai relasi ke
tabel Atasan
27 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
Jika anda ingin mengambil baris data dari tabel kiri yang tidak
punya relasi di tabel kanan (data pegawai yang tidak
mempunyai atasan), maka yang perlu ditambahkan adalah
filter terhadap field yang bersumber dari tabel kanan
(Employees ats) yang berisi NULL.
28 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
29 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
30 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
…
Pegawai (Atasan)
yang tidak
mempunyai relasi ke
tabel Pegawai
(Bawahan)
31 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
Jika anda ingin baris dari tabel kanan yang tidak mempunyai
relasi ke tabel kiri (data pegawai yang tidak mempunyai
bawahan), maka yang perlu ditambahkan adalah filter terhadap
field yang bersumber dari tabel kiri (Employees peg) yang
berisi NULL.
32 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
33 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
34 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
35 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
UNION
UNION
38 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
LATIHAN-LATIHAN
7 Rows
39 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
LATIHAN-LATIHAN
2,996 Rows
40 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
LATIHAN-LATIHAN
109 Rows
41 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
LATIHAN-LATIHAN
24 Rows
42 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia
Praktikum Basis Data
(Database Server MySQL)
LATIHAN-LATIHAN
2,996 Rows
43 Oleh : Andri Heryandi, S.T., M.T. Teknik Informatika (2009)– Universitas Komputer Indonesia