دمج جدولين في SQL

Dmj Jdwlyn Fy Sql



في SQL، يشير دمج الجدول إلى عملية دمج البيانات من جدولين منفصلين في قاعدة بيانات معينة في وحدة واحدة بناءً على عمود أو معايير مشتركة. نعم، إذا كان يبدو وكأنه طاولة، فهذا هو بالضبط ما هو عليه.

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

في هذا البرنامج التعليمي، سنغطي أساسيات انضمام الجدول أو دمج الجدول. دعونا نلقي نظرة على عينات الجدول في العالم الحقيقي لتعزيز معرفتنا.







جدول العينة

قبل أن نذهب إلى عالم ربط الجداول، دعونا نقوم بإعداد الجداول الأساسية التي سنستخدمها لأغراض العرض التوضيحي.



خذ بعين الاعتبار جدولين يحتويان على معلومات الموظفين والرواتب كما هو موضح في نماذج الاستعلامات التالية:



إنشاء موظفين في الجدول (

معرف الموظف INT AUTO_INCREMENT المفتاح الأساسي،

الاسم الأول VARCHAR( خمسون

اسم العائلة VARCHAR( خمسون

قسم فارتشار( خمسون )

);

يمكننا بعد ذلك إدراج بيانات العينة في جدول الموظف كما هو موضح في الاستعلامات التالية:





أدخل في قيم الموظفين (الاسم الأول، اسم العائلة، القسم).

( 'أليس' , 'حداد' , 'الموارد البشرية'

( 'بوب' , 'جونسون' , 'تسويق'

( 'تشارلي' , 'ويلسون' , 'تمويل'

( 'ديفيد' , 'بني' , 'مبيعات'

( 'إيفا' , 'ديفيس' , 'هندسة' );

دعونا نتابع ونقوم بإنشاء جدول جديد لتخزين معلومات الراتب على النحو التالي:

إنشاء جدول الرواتب (

راتب_معرف INT AUTO_INCREMENT المفتاح الأساسي،

معرف_الموظف INT,

الراتب العشري( 10 , 2

تاريخ البدء التاريخ،

end_date التاريخ،

المفتاح الخارجي (employee_id) المراجع الموظفين (employee_id)

);

قم بإضافة بيانات العينة المدرجة في الجدول كما يلي:



أدخل في الرواتب (معرف_الموظف، الراتب، تاريخ_البدء، تاريخ_الانتهاء) القيم
( 1 , 60000.00 , '2023-01-01' , '2023-12-31'
( 2 , 55000.00 , '2023-01-01' , '2023-12-31'
( 3 , 65000.00 , '2023-01-01' , '2023-12-31'
( 4 , 58000.00 , '2023-01-01' , '2023-12-31'
( 5 , 70000.00 , '2023-01-01' , '2023-12-31' );

من المفترض أن يزودنا هذا بجدولين يمكنهما مساعدتنا في توضيح مفهوم انضمام/دمج الجدول في SQL.

دمج جدول SQL/انضمام الجدول

دعونا نستكشف الأنواع المختلفة لدمج الجداول التي يمكننا القيام بها. سنغطي الأساسيات بينما نتقدم إلى الأمور الأكثر تقدمًا.

صلة داخلية

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

ولنأخذ جدولي 'الموظفين' و'الرواتب' اللذين قمنا بإنشائهما سابقاً كأمثلة. لإجراء INNER JOIN في SQL، نستخدم جملة INNER JOIN كما يلي:

يختار

معرف الموظف الإلكتروني،

e.first_name،

e.last_name،

القسم الإلكتروني,

س.الراتب

من

الموظفين ه

INNER JOIN الرواتب ق على

e.employee_id = s.employee_id;

في نموذج الاستعلام المحدد، نستخدم INNER JOIN لدمج جدولي 'الموظفين' و'الرواتب' في العمود 'employee_id' الموجود في كلا الجدولين. تحتوي المجموعة الناتجة على الصفوف المتطابقة فقط من كلا الجدولين.

مثال على الإخراج هو كما يلي:

ترك صلة خارجية

لدينا أيضًا صلة خارجية لليسار تجمع كل الصفوف من الجدول الأيسر والصفوف المطابقة من الجدول الأيمن. إذا لم يكن هناك أي تطابق في الجدول الأيمن، فإن الصلة تستخدم القيمة NULL.

يختار

معرف الموظف الإلكتروني،

e.first_name،

e.last_name،

القسم الإلكتروني,

س.الراتب

من

الموظفين ه

انضم إلى اليسار الرواتب ق

على

e.employee_id = s.employee_id;

في هذا المثال، نقوم بإجراء صلة خارجية لليسار لدمج جدولي 'الموظفين' و'الرواتب'. يتم تضمين كافة الصفوف من جدول 'الموظفين' وإضافة الصفوف المطابقة من جدول 'الرواتب'. ومع ذلك، يتم تضمين القيم الخالية في عمود 'الراتب' للصفوف غير المطابقة.

اتحاد SQL

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

يجب أن تحتوي الأعمدة الموجودة في كل عبارة SELECT على نفس نوع البيانات حتى يكون الاتحاد قابلاً للتطبيق.

مثال على النحو التالي:

حدد معرف الموظف، الاسم الأول، اسم العائلة، القسم، NULL AS الراتب

من الموظفين ه

اتحاد

حدد معرف الموظف، NULL AS الاسم الأول، NULL AS اسم العائلة، NULL AS القسم، الراتب

من الرواتب ;

في هذه الحالة، يقوم الاتحاد بدمج جدولي 'الموظفين' و'الرواتب'. نقوم بعد ذلك بإنشاء أعمدة NULL في كل عبارة SELECT للتأكد من أن كلا الجدولين يحتويان على عدد مماثل من الأعمدة.

تعد UNIONS شائعة من الناحية الفنية ولكنها يمكن أن تكون مفيدة خاصة عندما تحتاج إلى دمج الجداول بهياكل مختلفة.

خاتمة

في هذا البرنامج التعليمي، استكشفنا أساسيات الانضمام/دمج جدولين في مجموعة نتائج واحدة. من الجيد أن تضع في اعتبارك أن هناك الكثير من عمليات الانضمام المتقدمة التي تمت مناقشتها في هذا المنشور.