صباح الخير
أنواع الJoin في قواعد البيانات
ثريد هذا الاسبوع راح اتكلم فيه عن كل أنواع الjoin وايش الفروقات الاساسية بيهم
مع أمثلة فعلية لكل واحد منهم
@PrograminLovers
@programming_4
#برمجة
#أكادمية_ترميز
#حزب_المبرمجين
أولا ما هي عملية الjoin وايش فوائدها وليش نحتاجها؟
أنواع الJoin في قواعد البيانات
ثريد هذا الاسبوع راح اتكلم فيه عن كل أنواع الjoin وايش الفروقات الاساسية بيهم
مع أمثلة فعلية لكل واحد منهم
@PrograminLovers
@programming_4
#برمجة
#أكادمية_ترميز
#حزب_المبرمجين
أولا ما هي عملية الjoin وايش فوائدها وليش نحتاجها؟
تعال اعطيك مثال بسيط
تخيل عندنا جدولين واحد اسمه customers والثاني اسمه orders
وانا احتاج اعرف في كل طلب بيانات العميل الخاصة فيه زي رقم جواله واسمه وعنوانه وغيرها
بدل ما اني اسجل البيانات هذي لكل عميل داخل جدول الطلبات orders، انا فقط اسجل رقم العميل customer_id في هذا الجدول
تخيل عندنا جدولين واحد اسمه customers والثاني اسمه orders
وانا احتاج اعرف في كل طلب بيانات العميل الخاصة فيه زي رقم جواله واسمه وعنوانه وغيرها
بدل ما اني اسجل البيانات هذي لكل عميل داخل جدول الطلبات orders، انا فقط اسجل رقم العميل customer_id في هذا الجدول
وعن طريق استخدام خاصية الjoin اقدر بواسطة query وحده اني اطلع بيانات العميل من جدول الorders
نستخلص من هذا المثال ان الjoin تستعمل للربط بين عدة tables لاستخراج قيم من هذي الtables
وتفيد في انها تلغي اي تكرار ممكن يصير في البيانات
ثانيا أنواع الjoin في الSQL
نستخلص من هذا المثال ان الjoin تستعمل للربط بين عدة tables لاستخراج قيم من هذي الtables
وتفيد في انها تلغي اي تكرار ممكن يصير في البيانات
ثانيا أنواع الjoin في الSQL
عشان توضح الصورة اكثر
انا عندي جدول employees وجدول departments وسويت الquery التالية
employees inner join departments
الان في هذي العملية انا بختار القيم المشتركة بين الجدولين
بمعنى انا بختار كل الموظفين الي عندهم إدارات وكل الادارات الي فيها موظفين
انا عندي جدول employees وجدول departments وسويت الquery التالية
employees inner join departments
الان في هذي العملية انا بختار القيم المشتركة بين الجدولين
بمعنى انا بختار كل الموظفين الي عندهم إدارات وكل الادارات الي فيها موظفين
مثل الصورة الي فوق (المشترك بيهم فقط)
مثال للQuery
ٍSELECT * FROM Employees inner join Departments on Employee.employeeId = Departments.employeeId
عشان نوضح الquery
جدول الdepartments فيه قيمة هي employeeId، هذي القيمة هي الي تربط بين الtwo tables،
مثال للQuery
ٍSELECT * FROM Employees inner join Departments on Employee.employeeId = Departments.employeeId
عشان نوضح الquery
جدول الdepartments فيه قيمة هي employeeId، هذي القيمة هي الي تربط بين الtwo tables،
ف نحنا قلنا طلع لنا كل القيم الي يكون فيها الemployeeId في جدول الEmployees مساوي للemployeeId في جدول الdepartments وحددنا فوق inner join
ف النتيجة النهائية راح تكون القيم المشتركة بين الtwo tables
طبعا ملاحظة بسيطة
تقدر تكتب inner join او join فقط وكلها راح تأدي نفس النتيجة
ف النتيجة النهائية راح تكون القيم المشتركة بين الtwo tables
طبعا ملاحظة بسيطة
تقدر تكتب inner join او join فقط وكلها راح تأدي نفس النتيجة
نرجع للمثال السابق
اذا سوينا الquery هذي
employees left join departments
كل الموظفين راح يطلعو بغض النظر هم عندهم إدارة أو لا + راح تطلع فقط القيم المشتركة من جدول الdepartments (يعني فقط الادارات الي فيها موظفين)
الQuery
اذا سوينا الquery هذي
employees left join departments
كل الموظفين راح يطلعو بغض النظر هم عندهم إدارة أو لا + راح تطلع فقط القيم المشتركة من جدول الdepartments (يعني فقط الادارات الي فيها موظفين)
الQuery
نرجع للمثال السابق
اذا سوينا
employees right join departments
كل الادارات راح تطلع بغض النظر فيهم موظفين او لا
وبالنسبة للموظفين، راح يطلع فقط القيم المشتركة (الموظفين الي عندهم ادارات)
الQuery
اذا سوينا
employees right join departments
كل الادارات راح تطلع بغض النظر فيهم موظفين او لا
وبالنسبة للموظفين، راح يطلع فقط القيم المشتركة (الموظفين الي عندهم ادارات)
الQuery
هنا عندنا جدول فيه الموظف ومديره
المدير ايضا عبارة عن موظف
فعشان نطلع كل موظف واسم مديره لازم ندمج نفس الجدول بنفسه
وعشان توضح الصورة اكثر تخيل ان نفس هذا الجدول مكرر مرتين
وتم ربطهم عن طريق الManager_id
الQuery
المدير ايضا عبارة عن موظف
فعشان نطلع كل موظف واسم مديره لازم ندمج نفس الجدول بنفسه
وعشان توضح الصورة اكثر تخيل ان نفس هذا الجدول مكرر مرتين
وتم ربطهم عن طريق الManager_id
الQuery
- Cross Join
فكرة الcross join او تخيل عندنا جدول فيه 4 قيم customers
وجدول ثاني فيه 10 قيم orders
لو سوينا
SELECT * FROM customers cross join orders
النتيجة راح تكون 40 قيمة
يعني كل قيمة من الجدول الاول راح تربط مع كل قيمة من الجدول الثاني
فكرة الcross join او تخيل عندنا جدول فيه 4 قيم customers
وجدول ثاني فيه 10 قيم orders
لو سوينا
SELECT * FROM customers cross join orders
النتيجة راح تكون 40 قيمة
يعني كل قيمة من الجدول الاول راح تربط مع كل قيمة من الجدول الثاني
هذا النوع من الjoin مو مستعمل بكثرة ولكن ممكن يفيد في حالة انك تبغى تعرف كم الدقيقة في كل ساعة
الساعة الاولى --- الدقيقة 1
الساعة الاولى --- الدقيقة 2
الساعة الثانية ---- الدقيقة 10
وهكذا
طبعا ملاحظات بسيطة
الساعة الاولى --- الدقيقة 1
الساعة الاولى --- الدقيقة 2
الساعة الثانية ---- الدقيقة 10
وهكذا
طبعا ملاحظات بسيطة
ممكن تسمع
full outer join
left outer join
right outer join
هي نفسها الي شرحتها ومافي فرق بينهم
الشي الثاني اذا كنت تستعمل MySQL
الfull join مو مدعوم فيها بس في حلول كثيرة تقدر تشوفها
اتمنى الشرح يكون واضح
@PrograminLovers
#برمجة
#أكادمية_ترميز
#حزب_المبرمجين
#مبرمجين
full outer join
left outer join
right outer join
هي نفسها الي شرحتها ومافي فرق بينهم
الشي الثاني اذا كنت تستعمل MySQL
الfull join مو مدعوم فيها بس في حلول كثيرة تقدر تشوفها
اتمنى الشرح يكون واضح
@PrograminLovers
#برمجة
#أكادمية_ترميز
#حزب_المبرمجين
#مبرمجين
Loading suggestions...