كما ذكرنا في الدرس السابق ان عبارة SELECT هي واحدة من ايعازات DML وهي تمكننا من استرجاع المعلومات من جداول قواعد البيانات او من المشاهد VIEWS.
SELECT * FROM [Person].PersonPhone PHON
في المثال السابق استخدمنا اسم مصغر PHON لوصف الجدول وتالي فان نظام DBMS سوف يتعرف على كلمة PHON على انها البديل عن اسم الجدول وهذا الامر مفيد جدا عند كتابة استعلامات معقدة تشمل اكثر من جدول.
في المثال التالي كما نلاجظ استخدمنا الاسم المصغر في PHON بعد عبارة SELECT ثم نقطة (.) ثم النجمة (*) اي (PHON.*) هذا سوف يخبر DBMS اننا نريد استرجاع كل حقول الجدول المسمى PHON ولكن في الحقيقة ان DBMS سوف يبحث في جدول اسمه PersonPhone ولكنه يعرف عندما نذكر له PHON اننا نعني الجدول PersonPhone.
SELECT PHON.* FROM [Person].PersonPhone PHON
كما نلاحظ في الصورة التالية عند تنفيذ الايعازين سوف نحصل على نفس النتيجة ، لذا قد يسأل احد ما هي الفائدة من استخدام الاسماء المختصرة للجداول. والجواب يكمن ان ذلك يكون مفيد عندما تكون الاستعلامات معقدة وتحتوي على اكثر من جدول سوف نأخذ مثال لتوضيح ذلك.
في المثال التالي سوف نستخدم ثلاث جداول للحصول على معلومات الشخص وهاتفه والبريد الالكتروني وكما يلي :
- [Person].Person: يحتوي على معلومات الشخص
- [Person].PersonPhone: يحتوي على ارقام الهواتف
- [Person].EmailAddress: يحتوي على عناوين البريد الالكتروني
SELECT * FROM [Person].Person
INNER JOIN [Person].PersonPhone ON [Person].Person.BusinessEntityID=[Person].PersonPhone.BusinessEntityID
INNER JOIN [Person].EmailAddress ON [Person].Person.BusinessEntityID=[Person].EmailAddress.BusinessEntityID
كما لاحظنا اضطررنا الى كتابة اسماء الجداول المطولة و هذا سوف يكون امر مزعج اذا زاد تعقيد الاستعلام حيث ان مثالنا لايزال بسيط. مثلا اذا اردنا ان نختار المعلومات السابقة لشخص واحد فقط اعتمادا على معرف الشخص وهو الحقل BusinessEntityID
اذا نفذنا الايعاز التالي سوف نحصل على خطاء
والسبب في ذلك هو ان الحقل BusinessEntityID موجود في الجداول الثلاثة لذا انظام DBMS سوف يحتاج منا الى ان نخبره من اي جدول عليه ان يستخدم هذا الحقل
وهنا ايضا سوف نظطر الى كتابة اسم الجدول المطول وكما يلي
في المثال التالي استخدمنا الاسماء المختصرة وكما يلي فأصبح الايعاز اكثر وضوحا:
اضافة الى وضوح الايعاز يمكن ان ننفذ الايعاز التالي والذي سوف يعيد فقط حقول جدول PersonPhone
كذلك يمكن تنفيذ الايعاز التالي والذي سوف يعيد كل حقول جدول PersonPhone وكل حقول جدول EmailAddress
اخيرا يمكن عرض حقول مختارة من الجداول الثلاثة، وهنا ايضا نلاحظ ان الاسماء المختصرة للجداول ساعدت في تبسيط شكل الايعاز