Atribut kunci (primary key) adalah sebuah kolom (atau kombinasi kolom) dengan nilai isian unik (pasti berbeda) pada tiap baris. Tujuan adanya atribut kunci adalah untuk mengikat data bersama, lintas tabel, tanpa perulangan seluruh data di setiap tabel.
Contoh Relasi antar tabel dan jenis SQL Joins
Perhatikan tabel “Personal” berikut ini| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Cannavaro | Fabio | Real Madrid 5 | Napoli |
| 2 | Ribas | Diego | Werder Bremen 10 | Sao Paulo |
| 3 | D’Agostino | Getano | Udinese 11 | Udine |
Perhatikan tabel “Orderan” :
| O_Id | OrderNo | P_Id |
|---|---|---|
| 1 | 77895 | 3 |
| 2 | 44678 | 3 |
| 3 | 22456 | 1 |
| 4 | 24562 | 1 |
| 5 | 34764 | 15 |
Relasi antara kedua tabel di atas terletak pada kolom “P_Id”.
Jenis SQL Joins
- JOIN (atau INNER JOIN): Mengambil baris jika terdapat minimal satu kecocokan pada kedua tabel yang dipasangkan
contoh Query :
SELECT Personal.LastName, Personal.FirstName, Orderan.OrderNo
FROM Personal
INNER JOIN Orderan ON Personal.P_Id=Orderan.P_Id
ORDER BY Personal.LastName
Hasil Query:LastName FirstName OrderNo Cannavaro Fabio 22456 Cannavaro Fabio 24562 D’Agostino Getano 77895 D’Agostino Getano 44678 - LEFT JOIN: Mengambil seluruh baris di ‘tabel kiri’, meskipun tidak ada kecocokan dengan ‘tabel kanan’
contoh Query:
SELECT Personal.LastName, Personal.FirstName, Orderan.OrderNo
FROM Personal
LEFT JOIN Orderan ON Personal.P_Id=Orderan.P_Id
ORDER BY Personal.LastName
Hasil Query:LastName FirstName OrderNo Cannavaro Fabio 22456 Cannavaro Fabio 24562 D’Agostino Getano 77895 D’Agostino Getano 44678 Ribas Diego - RIGHT JOIN: Mengambil seluruh baris di ‘tabel kanan’, meskipun tidak ada kecocokan dengan ‘tabel kiri’
contoh Query:
SELECT Personal.LastName, Personal.FirstName, Orderan.OrderNo
FROM Personal
RIGHT JOIN Orderan ON Personal.P_Id=Orderan.P_Id
ORDER BY Personal.LastName
Hasil Query:LastName FirstName OrderNo Cannavaro Fabio 22456 Cannavaro Fabio 24562 D’Agostino Getano 77895 D’Agostino Getano 44678 34764 - FULL JOIN: Mengambil baris jika terdapat kecocokan di satu tabel saja
contoh Query:
SELECT Personal.LastName, Personal.FirstName, Orderan.OrderNo
FROM Personal
FULL JOIN Orderan ON Personal.P_Id=Orderan.P_Id
ORDER BY Personal.LastName
Hasil Query:LastName FirstName OrderNo Cannavaro Fabio 22456 Cannavaro Fabio 24562 D’Agostino Getano 77895 D’Agostino Getano 44678 Ribas Diego 34764
Tidak ada komentar:
Posting Komentar