Gabungan Dalam
Menggabungkan tabel
Dalam database relasional, data sering diatur ke dalam beberapa tabel untuk meminimalkan redundansi dan meningkatkan integritas data. Pendekatan desain ini, yang dikenal sebagai normalisasi, menghindari mengulangi informasi yang sama di tempat yang berbeda. Namun, ini berarti bahwa informasi yang berguna sering tersebar di beberapa tabel.
Gabungan adalah operasi SQL penting yang menjembatani kesenjangan ini, memungkinkan Anda menggabungkan baris dari dua atau lebih tabel dan mengambil kembali data terkait dalam satu kumpulan hasil terpadu. Intinya, gabungan memungkinkan Anda untuk mengkueri informasi yang terhubung secara logis tetapi dipisahkan secara fisik. Mereka mencapai kombinasi ini dengan mengidentifikasi dan mencocokkan baris berdasarkan nilai yang ditemukan dalam satu atau beberapa kolom umum di antara tabel. Kolom umum ini sering berfungsi sebagai tautan antara kunci primer dalam satu tabel dan kunci asing di tabel lain, membangun hubungan yang ditentukan dalam skema database.
Catatan: Kunci primer adalah pengidentifikasi unik untuk setiap rekaman dalam tabel, memastikan bahwa tidak ada dua baris yang memiliki nilai yang sama di kolom ini. Kunci asing, di sisi lain, adalah kolom dalam satu tabel yang mereferensikan kunci utama dalam tabel lain, sehingga menautkan dua tabel.
Ada beberapa 'jenis' gabungan (INNER, LEFT, RIGHT, FULL OUTER, NATURAL), masing-masing dirancang untuk menggabungkan tabel dengan cara yang sedikit berbeda. Mereka memberikan kontrol atas baris mana yang disertakan dalam tataan hasil berdasarkan keberadaan atau tidak adanya nilai yang cocok dalam tabel yang digabungkan.
Gabungan Dalam
INNER JOIN Adalah salah satu jenis gabungan SQL yang paling umum digunakan. Ini menggabungkan baris dari beberapa tabel berdasarkan kondisi yang menentukan nilai yang cocok dalam kolom bersama.
Saat melakukan INNER JOIN, hanya baris yang memenuhi kondisi dari kedua tabel yang disertakan dalam set hasil, secara efektif menyaring data yang tidak cocok. Ini membuat INNER JOIN ideal untuk mengambil informasi terkait di mana koneksi antar tabel secara eksplisit ditentukan, seperti pesanan pelanggan atau penugasan karyawan.
SELECT orders.order_id, customers.customer_name, employees.first_name, employees.last_name
FROM sales.orders AS orders
INNER JOIN sales.customers AS customers ON orders.customer_id = customers.customer_id
INNER JOIN sales.employees AS employees ON orders.employee_id = employees.employee_id;
Kueri yang disediakan menggunakan beberapa INNER JOIN operasi untuk mengambil kumpulan hasil terpadu yang berisi detail tentang orders, customers, dan employees.
Ini mencocokkan customer_id dalam tabel orders dengan customer_id yang sesuai dalam tabel customers, dan employee_id dalam tabel orders dengan employee_id dalam tabel employees. Akibatnya, kueri menghasilkan ID setiap pesanan bersama nama pelanggan dan karyawan yang terlibat.