20-01-2009, 03:09 PM
|
#35
|
تاريخ التسجيل: Apr 2008
التخصص: علوم حاسبات
نوع الدراسة: متخرج
المستوى: العاشر
الجنس: ذكر
المشاركات: 67
|
رد: نقاش حول واجب cs424 الواجب السادس مع معلومات عن الاختبار
هذا الحل زي ما حليت انا طبق بالضبط
الربط في السيكيول SQL Join :
الغرض من ربط الجداول ببعضها هو استخراج البيانات من أكثر من جدول في قاعدة البيانات !! كذلك يستخدم الربط كوسيلة لمنع تكرار القيم في أي حقل من حقول الجداول بصورة مزعجة أحياناً ، فمثلاً حينما يكون للطالب أكثر من مادة وتدرج جميع المواد مع اسم الطالب في نفس الجدول ، ستكون النتيجة وجود عدد كبير من السجلات لنفس الطالب في نفس الجدول ، كل سجل خاص بمادة !! وهذا غير عملي أبداً إذ أنه يؤدي إلى كبر الجدول وبالتالي زيادة المساحة التخزينية له !! لذلك فإننا نقوم بعمل جدولين جدول للطالب بكامل بياناته ( الاسم -الرقم - تاريخ الميلاد -التخصص - المعدل ... ألخ ) وجدول آخر للمواد يحوي أسم المادة وأرقام الطلاب الذين يدرسونها ، ونربط بين الجدولين برقم الطالب بالتأكيد حيث أننا اخترناه مفتاحاً لاستحالة تكراره لأكثر من طالب !!
ولاستخراج بيانات من جدولين ، نستخدم المفتاح الذي يربط بينهما في الشرط ، كالتالي :
SELECT Table1.any_column, Table2.any_column
FROM Table1, Table2
WHERE Table1.Keycolumn = Table2.foreign_Keycolumn;
مثال :
اطبع اسماء الموظفين ورقم القسم الذي يعملون فيه واسم المشروع الذي يعملون عليه ؟ - ملاحظة : هذه البيانات موجودة في جدولين -
الحل :
SELECT FNAME , DNUM, PNAME
FROM EMPLOYEE , PROJECT
WHERE DNUM = DNO;
OR
SELECT EMPLOYEE.FNAME, PROJECT.DNUM, PROJECT.PNAME
FROM EMPLOYEE, PROJECT
WHERE PROJECT. DNUM = EMPLOYEE.DNO;
وان شاء الله اسوى لكم برنت من واجبي
لا تنسو الدعاء
|
|
التعديل الأخير تم بواسطة عسووول ; 20-01-2009 الساعة 03:11 PM.
|
|
|