الربط الأساسي - الجزء الأول
جزء من قسم الأساسيات في رحلة SQL على Coddy. الدرس 43 من 72.
حتى الآن، تناولنا مسائل تتعلق بجدول واحد. والآن سنتعرّف على كيفية التعامل مع جداول متعددة.
لنفترض أن لدينا الجداول التالية:
courses
| course_id | lecturer_id |
|---|---|
| 1 | 1 |
| 2 | 1 |
| 3 | 2 |
المحاضرون
| lecturer_id | الاسم |
|---|---|
| 1 | Jhonas |
| 2 | Malidos |
المطلوب هو عرض اسم المحاضر المقابل لكل مقرر دراسي.
هناك طريقتان لتحقيق ذلك. في كل خيار، نطابق كل صف في أحد الجدولين بصف في الجدول الآخر. نتحقق من شرط يجب استيفاؤه، وإذا تحقق الشرط، ندمج الصفين في صف واحد. النتيجة المطلوبة لكلا الخيارين:
| course_id | lecturer_name |
|---|---|
| 1 | Jhonas |
| 2 | Jhonas |
| 3 | Malidos |
الخيار 1:
SELECT courses.course_id, lecturers.name AS lecturer_name
FROM courses, lecturers
WHERE courses.lecturer_id = lecturers.lecturer_idهنا نكتب جدولين في الكلمة المفتاحية FROM، وفي عبارة WHERE نطلب أن تكون قيمة lecturer_id في السجلين متطابقة. وفي عبارة SELECT نكتب الآن table.column لكي تعرف قاعدة البيانات من أين تجلب العمود.
الخيار 2:
SELECT courses.course_id, lecturers.name AS lecturer_name
FROM courses
JOIN lecturers ON courses.lecturer_id = lecturers.lecturer_idبدلاً من WHERE نستخدم JOIN table ON condition
يعطي كلا الخيارين النتيجة نفسها، ويُسمّى هذا ربطًا داخليًا: تُدمج فقط أزواج الصفوف التي تستوفي الشرط.
التحدي
سهلالجداول والأعمدة المتاحة:
grades:course_id,student_id,gradestudents:id,name
أنشئ استعلامًا يجلب student_name وcourse_id وstudent_id وgrade في جدول واحد. رتّب النتائج حسب الدرجة بترتيب تصاعدي.
جرّب بنفسك
-- اعرض الأعمدة التي تطلبها المهمة، باستخدام الاسم المستعار الذي تطلبه
SELECT ____
FROM students, grades
-- احتفظ فقط بأزواج الصفوف التي يصف فيها الجدولان الشخص نفسه
WHERE ____
ORDER BY gradeيتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
2الشروط
أساسيات الشروطالكلمة المفتاحية ANDالكلمة المفتاحية ORالكلمة المفتاحية NOTدمج شروط متعددةالأقواسالقيم المنطقية Booleans3تنسيق محدد للنتائج
قيم Nullترتيب النتائج - الجزء الأولترتيب النتائج - الجزء الثانيمراجعة - شركة للأمن السيبرانيتحديد عدد السجلاتمراجعة - مصنع مركبات6تحديات تمهيدية
مراجعة - الانتخابات البرلمانيةمراجعة - اعتقال الشرطة للمجرمينمراجعة - حاوية مشروبات البارمراجعة - هندسة أعمدة جديدة9جداول متعددة
الربط الأساسي - الجزء الأولالربط الأساسي - الجزء الثانيمراجعة - الربط (Join)الربط الذاتي (Self Join)مراجعة - الربط الذاتي (Self Join)الاتحاد (Union)تبسيط الاستعلامات، الكلمة المفتاحية WITHمراجعة - استعلامات WITHمراجعة - مقاول العقارات12Window Functions الجزء الثاني
دوال RANK و DENSE_RANKمراجعة - RANK و DENSE_RANKدالة NTILEدوال التجميعمعيار ROWS و RANGEتدرّب بنفسك: Playground لـ SQL