الربط الأساسي - الجزء الأول
جزء من قسم الأساسيات في رحلة SQL على Coddy. الدرس 43 من 72.
حتى الآن، قمنا بالتعامل مع مشكلات متعلقة بجدول واحد. الآن سندرس كيفية التعامل مع عدة جدول (tables).
دعنا نفترض أن لدينا الجداول التالية:
courses
| course_id | lecturer_id |
|---|---|
| 1 | 1 |
| 2 | 1 |
| 3 | 2 |
lecturers
| lecturer_id | name |
|---|---|
| 1 | Jhonas |
| 2 | Malidos |
المهمة هي عرض كل دورة تعليمية (course_id) مع اسم المحاضر (lecturer_name) المقابل لها.
هناك طريقتان لتحقيق ذلك. بالنسبة لكل خيار، نربط كل `row` في أحد الـ `tables` بالآخر. نتحقق من شرط يجب استيفاؤه، وإذا تحقق الشرط ندمج الـ `row`ين في `row` واحد. النتيجة المطلوبة للخيارين الـ `both`:
| 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
يُطلق على هذا النوع من الربط أيضاً اسم الربط الداخلي (inner join).
التحدي
سهلالجداول والأعمدة المتاحة:
<strong>grades</strong>:<strong>course_id</strong>,<strong>student_id</strong>,<strong>grade</strong><strong>students</strong>:<strong>id</strong>,<strong>name</strong>
أنشئ استعلامًا يجلب student_name و course_id و student_id و grade في جدول واحد. قم بترتيب النتيجة حسب 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