Rumah >pangkalan data >tutorial mysql >Operasi perhubungan binari: penggabungan dan pembahagian
Dalam sistem pengurusan pangkalan data, keupayaan untuk menyertai dan mendapatkan semula data daripada berbilang jadual adalah penting untuk organisasi dan manipulasi data yang berkesan. Operasi JOIN dan DIVISION ialah dua operasi perhubungan binari yang membolehkan pengguna menggabungkan atau membahagi data daripada berbilang jadual berdasarkan syarat yang ditetapkan. Dalam artikel ini, kami akan melihat secara mendalam operasi JOIN dan DIVISION, termasuk sintaks, jenis dan contoh cara menggunakannya dalam SQL dan bahasa pengaturcaraan lain.
Operasi JOIN menggabungkan baris daripada dua atau lebih jadual berdasarkan lajur atau set lajur yang berkaitan (dipanggil kekunci). Jadual yang terhasil dipanggil jadual gabungan dan mengandungi semua lajur daripada jadual asal, dengan setiap baris mewakili gabungan baris daripada jadual asal yang memenuhi syarat gabungan.
Terdapat banyak jenis JOIN, masing-masing mempunyai ciri unik dan kes penggunaannya sendiri -
INNER JOIN - INNER JOIN menggabungkan baris daripada dua jadual yang sepadan dengan kriteria gabungan. Ia hanya mengembalikan baris yang memenuhi syarat dan membuang yang lain.
OUTER JOIN - OUTER JOIN menggabungkan semua baris daripada dua jadual, termasuk yang tidak memenuhi syarat gabungan. Terdapat tiga jenis OUTER JOIN: LEFT JOIN, KANAN JOIN dan FULL JOIN.
LEFT JOIN - LEFT JOIN mengembalikan semua baris dalam jadual kiri dan semua baris sepadan dalam jadual kanan. Jika tiada padanan, nilai NULL dikembalikan untuk lajur jadual kanan.
RIGHT JOIN - RIGHT JOIN mengembalikan semua baris dari jadual kanan dan semua baris yang sepadan dari jadual kiri. Jika tiada padanan, nilai NULL dikembalikan untuk lajur jadual kiri.
FULL JOIN - FULL JOIN mengembalikan semua baris dalam kedua-dua jadual, ditambah nilai NULL untuk mana-mana baris yang tidak sepadan.
Sintaks operasi JOIN berbeza-beza bergantung pada bahasa pengaturcaraan dan sistem pengurusan pangkalan data yang digunakan. Berikut ialah contoh sintaks umum untuk operasi JOIN dalam SQL -
SELECT * FROM table1 JOIN table2 ON table1.key = table2.key
Dalam contoh ini, penyataan SELECT mendapatkan semula semua lajur dalam jadual1 dan jadual2, dan klausa JOIN menggunakan kata kunci HIDUP untuk menentukan jadual yang hendak dicantumkan dan syarat gabungan.
Berikut ialah contoh INNER JOIN dalam SQL yang menggabungkan jadual "pelanggan" dan "pesanan" berdasarkan lajur "id_pelanggan" -
SELECT * FROM customers INNER JOIN orders ON customers.customer_id = orders.customer_id
INNER JOIN ini akan mengembalikan jadual yang mengandungi semua baris daripada jadual "pelanggan" dan jadual "pesanan" di mana lajur "id_pelanggan" dalam jadual "pelanggan" sepadan dengan lajur "id_pelanggan" dalam jadual "pesanan".
Berikut ialah contoh LEFT JOIN dalam SQL yang menggabungkan jadual "pekerja" dan "jabatan" berdasarkan lajur "id_jabatan" -
SELECT * FROM employees LEFT JOIN departments ON employees.department_id = departments.department_id
LEFT JOIN ini akan mengembalikan jadual yang mengandungi semua baris daripada jadual "pekerja" dan semua baris yang sepadan daripada jadual "jabatan". Jika tiada padanan, nilai NULL akan dikembalikan untuk lajur jadual "jabatan".
Operasi PEMBAHAGIAN ialah operasi perhubungan binari yang membahagikan satu set baris kepada set baris yang lain berdasarkan syarat yang ditetapkan. Ia serupa dengan operasi JOIN, tetapi jadual hasil hanya mengandungi baris yang tergolong dalam kumpulan pertama dan memenuhi kriteria pembahagian.
Sintaks operasi DIVISION berbeza-beza bergantung pada bahasa pengaturcaraan dan sistem pengurusan pangkalan data yang digunakan. Berikut ialah contoh sintaks umum untuk operasi DIVISION dalam SQL -
SELECT * FROM table1 WHERE EXISTS (SELECT * FROM table2 WHERE table1.key = table2.key)
Dalam contoh ini, pernyataan SELECT mendapatkan semula semua lajur dalam jadual1 dan klausa WHERE menggunakan kata kunci EXISTS untuk menyemak sama ada terdapat baris dalam jadual2 yang memenuhi syarat pembahagian.
Berikut ialah contoh operasi DIVISION dalam SQL, yang membahagikan jadual "pelanggan" kepada dua koleksi berdasarkan lajur "jenis_pelanggan" -
SELECT * FROM customers WHERE EXISTS (SELECT * FROM orders WHERE customers.customer_id = orders.customer_id)
Operasi DIVISION ini akan mengembalikan jadual yang mengandungi semua baris dalam jadual "pelanggan" di mana terdapat baris yang sepadan dalam jadual "pesanan" berdasarkan lajur "id_pelanggan".
Berikut ialah beberapa topik lain yang mungkin anda dapati membantu dalam memahami operasi JOIN dan DIVISION -
Natural Join vs. Outer Join - Sambung semula jadi ialah gabungan dalam yang menggabungkan baris daripada dua atau lebih jadual berdasarkan lajur dengan nama yang sama. Cantuman luar ialah sebarang jenis cantuman yang merangkumi baris daripada satu atau kedua-dua jadual yang tidak memenuhi syarat cantuman.
Cartesian Product - Produk Cartesian adalah hasil daripada operasi JOIN yang tidak menyatakan syarat cantum. Ia menggabungkan setiap baris daripada satu jadual dengan setiap baris daripada jadual lain, menghasilkan jadual dengan bilangan baris yang sama dengan hasil darab bilangan baris dalam setiap jadual asal.
Self-Join- Joint sendiri ialah jenis cantuman yang menggabungkan baris dari satu jadual berdasarkan syarat cantuman. Ia berguna untuk membandingkan baris dalam jadual yang sama atau membuat hierarki dalam jadual.
SET OPERATOR - Operator SET digunakan untuk menggabungkan keputusan berbilang penyataan SELECT ke dalam set hasil tunggal. Ia boleh digunakan bersama dengan operasi JOIN dan DIVISION untuk memanipulasi data dalam berbilang jadual. Pengendali SET yang paling biasa ialah UNION, INTERSECT, dan MINUS.
Mengindeks - Pengindeksan ialah proses mencipta struktur data berasingan yang membolehkan akses lebih pantas kepada baris dalam jadual. Ia boleh digunakan untuk meningkatkan prestasi operasi JOIN dan DIVISION dengan mengurangkan jumlah data yang perlu diimbas dan dibandingkan.
Operasi JOIN dan DIVISION ialah alat penting untuk menggabungkan dan membahagikan data daripada berbilang jadual dalam sistem pengurusan pangkalan data. Dengan memahami sintaks dan kes penggunaan operasi ini, anda boleh mendapatkan dan memanipulasi data dalam pangkalan data anda dengan cekap.
Atas ialah kandungan terperinci Operasi perhubungan binari: penggabungan dan pembahagian. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!