الانضمام الداخلي

مكتمل

ربط الجداول

في قواعد البيانات الارتباطية، يتم تنظيم البيانات بشكل متكرر في جداول متعددة لتقليل التكرار وتحسين تكامل البيانات. يتجنب نهج التصميم هذا، المعروف باسم التطبيع، تكرار نفس المعلومات في أماكن مختلفة. ومع ذلك، هذا يعني أن المعلومات المفيدة غالبا ما تنتشر عبر جداول متعددة.

الصلات هي عمليات SQL أساسية تسد هذه الفجوة، ما يسمح لك بدمج صفوف من جدولين أو أكثر واسترداد البيانات ذات الصلة في مجموعة نتائج واحدة وموحدة. في جوهرها، تمكنك الصلات من الاستعلام عن المعلومات المتصلة منطقيا ولكن مفصولة ماديا. وهي تحقق هذه المجموعة من خلال تحديد الصفوف ومطابقتها استنادا إلى القيم الموجودة في عمود واحد أو أكثر من الأعمدة الشائعة بين الجداول. غالبا ما تكون هذه الأعمدة الشائعة بمثابة ارتباط بين مفتاح أساسي في جدول واحد ومفتاح خارجي في جدول آخر، مما يؤدي إلى إنشاء العلاقات المعرفة في مخطط قاعدة البيانات.

ملاحظة: المفتاح الأساسي هو معرف فريد لكل سجل في جدول، ما يضمن عدم وجود صفين له نفس القيمة في هذا العمود. المفتاح الخارجي، من ناحية أخرى، هو عمود في جدول واحد يشير إلى المفتاح الأساسي في جدول آخر، وبالتالي ربط الجدولين.

هناك العديد من "النكهات" من الصلات (INNER، LEFT، RIGHT، FULL OUTER، NATURAL)، كل منها مصمم لدمج الجداول بطرق مختلفة قليلا. وهي توفر التحكم في الصفوف المضمنة في مجموعة النتائج استنادا إلى وجود القيم المتطابقة أو عدم وجودها في الجداول المنضمة.

الانضمام الداخلي

INNER JOIN يعد أحد الأنواع الأكثر استخداما لصلات SQL. فهو يجمع صفوفا من جداول متعددة استنادا إلى شرط يحدد القيم المطابقة في عمود مشترك.

عند تنفيذ INNER JOIN، يتم تضمين الصفوف التي تفي بالشرط من كلا الجدولين فقط في مجموعة النتائج، وتصفية أي بيانات غير متطابقة بشكل فعال. يعد INNER JOIN هذا الأمر مثاليا لاسترداد المعلومات ذات الصلة حيث يتم تعريف الاتصالات بين الجداول بشكل صريح، مثل طلبات العملاء أو تعيينات الموظفين.

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;

يستخدم الاستعلام المقدم عمليات متعددة INNER JOIN لاسترداد مجموعة نتائج موحدة تحتوي على تفاصيل حول ordersو customersو employees.

يطابق customer_id في orders الجدول مع المطابق customer_id في customers الجدول، وفي employee_idorders الجدول مع employee_id في employees الجدول. ونتيجة لذلك، يقوم الاستعلام بإخراج معرف كل طلب جنبا إلى جنب مع أسماء العميل والموظف المعنيين.