190 likes | 386 Views
Joining Tables. ضم الجداول وإستخراج مناظر views منها الهدف : 1- استخراج المعلومات من جدولين أو اكثر بالإس ت فادة من الرابط بينهما وبإستخدام SQL 2- شروط قواعد ضم الجدول 3- تمرين الموضوع : تحتاج في كثير من الاحيان إلي استرجاع بيانات مخزنة في جدولين أو اكثر بإستفسار واحد. Joining Tables.
E N D
Joining Tables ضم الجداول وإستخراج مناظر views منها الهدف : 1- استخراج المعلومات من جدولين أو اكثر بالإستفادة من الرابط بينهما وبإستخدام SQL 2- شروط قواعد ضم الجدول 3- تمرين الموضوع : تحتاج في كثير من الاحيان إلي استرجاع بيانات مخزنة في جدولين أو اكثر بإستفسار واحد.
Joining Tables ضم الجداول وإستخراج مناظر views منها مثال :- من مثال الشركة نريد الحصول علي تقرير به رقم الموظف واسم الموظف واسم القسم الذي يعمل به وذلك لكل الموظفين المسجلين Q 18 :- Select SSN, Fname , Lname , Dname From Employee, Department Where DNO = Dnumber; Department Employee
تضم جملة Select السابقة الأعمدة من جدول الموظفين Employee وجدول الاقسام Department بإستخدام العمود المشترك الرابط بين الجدولين و Dnumber في جدول الاقسام ويقيد الشرط المذكور بعد Where أنه سيتم إختيار فقط الأسطر التي يتطابق فيها الشرط في الجدولين.
Q 19 :- Select SSN, Fname , Lname , Dname From Employee, Department Where DNO = Dnumber AND Dname =‘administration’; O / p of Q 19
استخدامات ضم الجداول : • للحصول علي بيانات من حقول سجلات الجدولين وضمها معاً مثل المثال السابق . • الحصول علي بيانات موجودة بجدول واحد إعتماداً علي شرط يطبق علي عمود بالجدول الأخر مثل المثال التالي 20 Q
من مثال الشركة اكتب جملة Select للحصول علي أسماء الموظفين الذين يعملون بمشاريع Q 20 :- Select Distinct (Fname , Lname ) From Employee, Worksـــ on Where SSN = ESSN; O / p of Q 20 ملحوظة نلاحظ في الامثلة السابقة ان العمود في أحد جدولي الربط يمثل مفتاح رئيسي PKبينما العمود في الجدول الاخر يمثل مفتاح أجنبي Foreign key
قواعد ضم الجدول • لا يزيد عدد الجداول في جملة Select الواحدة نظرياً عن 15 جدول ولكن عملياً تشير وثائق IBM إلي استخدام سبعة جداول كحد اقصي وبصورة عملية اكثر يوصي بعدم إستخدام اكثر من أربعة جداول في جملة Select الواحدة وخاصة مع الجداول ذات الحجم المتوسط أو الكبير (من 10.000 إلي 100.000 سجل لكل جدول ). • في حالة إستخدام عمودين لهما نفس الإسم وهما من جدولين مختلفين يتم إستخدام إسم الجدول مع إسم العمود للتمميز بينهما مثل : Department.sex Employee.sex 3. يجب أن يكون نوع حقول الأعمدة المستخدمة لربط الجداول من نفس النوع (حروف أو أعداد صحيحة أو اعداد حقيقية.....(
4. القيم Null الموجودة في الأعمدة بالجدولين لا تتحقق شرط الضم أبداً 5. عادة يتم شرط الضم بأستخدام العامل (=) ولكن من الممكن إستخدام عوامل أخري مثل (>، <،...........) لتحقيق شرط الضم 6. يمكن للشروط التي بعد كلمة Where أن تشمل علي عدة شروط أخري بالإضافة إلي شرط الضم مثل : where SSN=ESSN and hours>20.0;
مثال 1 : يوضح المثال السابق إستخدام الربط بين جدولين بدون إستخدام شروط إضافية ويكون الشكل العام لجملة Select هو : Select <colm1,colum2,……..> From <table1,table2,……….> Where<Join condition> ; راجع :- Q 18 Q 21 :- ضم جدول Employee وجدول Department من خلال قيم DNO وإظهار كل أعمدة وسجلات الجدولين.
Q 21 :- Select * From Employee, Department Where DNO = Dnumber;
Q 22 :- ضم جدول Employee وجدول Department من خلال قيم DNO وإظهار كل أعمدة وسجلات الجدولين مع ترتيب الجدول الناتج طبقاً لرقم الموظف. Select * From Employee, Department Where DNO = Dnumber Order by SSN;
Q 23 :- • يتضمن هذا المثال إضافة شرط أخر مع شرط ربط الجداول اكتب جملة Select لإستخراج كافة المعلومات بجدول الموظف مع كافة معلومات من يعول للموظف رقم ”666884444“ الحل :- Select Employee.* , Department.* From Employee, Department Where SSN = ESSN and SSN =‘666884444’ Order by SSN;
Q 24 :- • هل يمكنك إستخراج رقم واسم الموظفين اللذين ليس لهم معولين Dependent ؟ اكتب جملة Select تفعل ذلك. Select SSN, Fname , Lname From Employee, Dependent Where