استعلامات الاختيار Select Queries

الجزء الثاني

إعداد : محمد طاهر

 

الجزء الأول من شرح استعلامات الإختيار :  من هنا

 

الجزء االثاني - محتوبات الموضوع :

 

إنشاء إستعلام إختيار( استعلام تحديد )  باستخدام المعالج

تمثيل العلاقات المختلفة بجمل الاس كيو ال

استعلام  الجداول المحورية ( الاستعلام الجدولي )

إٍستعلام إيجاد القيم المتكررة

إستعلام إيحاد القيم الغير متماثلة

المجموعات فى الأكسس

 

 

 

الي الأعلي

 

إنشاء إستعلام إختيار ( استعلام تحديد )  باستخدام المعالح

 

بالعودة الي إطار قاعدة البيانات و إختيار خيار الاستعلامات من الجزء الايسر

 

نختار هذه المرة بناء الاستعلام باستخدام المعالح ( الخيار الثاني )

 

فتظهر لنا الشاشة التالية :

 

 

 

 

و منها نختار الجدول الذي سيكون مصدر البيانات

و ستظهر الجقول الموجودة فى هذا الجدول و منها سنختار الحقول التي ستنتقل الي اليمين فى المربع الذي يمثل الحقول المختارة

و هنا اخترنا

EmplyeeID

Title

Birthdate
City

ثم نضغط علي next

 و تظهر لنا الشاشة التالية :

 

 

 

و منها نحدد ثلاث  خيارات

الاول : اسم الاستعلام

الثاني : الاختيار بين فتح الاستعلام فى وضع التصميم أم فى وضع  عرض البيانات بعد انتهاء خطوات المعالج

و الثالث : اظهار المساعدة اثناء العمل ( لاداعي له )

 

و هكذا نكون أنشأنا الاستعلام باستخدام المعالج

و جملة الاس كيو ال المناظرة :

 

SELECT Employees.EmployeeID, Employees.Title, Employees.BirthDate, Employees.City
FROM Employees;
 

 

و هذا استعلام مبني علي جدول واحد

ماذا لو أردنا إنشاء استعلام مبني علي أكثر من جدول باستخدام المعالج ؟؟

هنا لابد من وجود علاقة بين الجداول المتعددة التي سنبني عليها الاستعلام

و نتحدث فى الجزء القادم عن كيفية التعبير عن أنواع العلاقات بجمل الاس كيو ال

 

 

 

 

الي الأعلي

 

تمثيل العلاقات المختلفة بجمل الاس كيو ال

 

لتمثيل العلاقات المختلفة بين الجداول ، نستخدم ثلاث تعبيرات

Inner Join

Right Join, On

Left Join, On

 

و سنتعرف علي استخدامها فيما يلي :

 

 

لنعيد الخطوة السابقة ،

حتي إختيار نفس الحقول الأربعة

EmplyeeID

Title

Birthdate
City

و قبل أن نضغط علي next

 لنختار جدول آخرو هو  جدول ال orders

و لنختار منه حقل ال orderId

و بعد اختيار الحقول و ضغط next ستظهر شاشة مختلفة عن المرة السابقة :

 

 

و يتم تخييرنا بين اظهار التفاصيل

و في هذه الحالية سنحصل علي استعلام به الاربعة بيانات للعاملين بالاضافة الي رقم الطلب

و يكون اجمالي عدد السجلات هو  830 سجل

 

و المثال الناتج باسم الاستعلام = Employees Query1

 

 

 و شكل التصميم المناظر هو :

 

 

 

  و جملة ال سي كيو ال به هي :

 

SELECT Employees.EmployeeID, Employees.Title, Employees.HireDate, Employees.City, Orders.OrderID
FROM Employees INNER JOIN Orders ON Employees.EmployeeID = Orders.EmployeeID;
 

 

و نلاحظ أن كلمة  FROM فى هذه الحالة قد اختلفت عن كونها متبوعة باسم لجدول كما سبق ، و لكن هنا متبوعة بجملة تعبر عن وصلة بين جدولين محددي الاسم ن متبوعة بكلمة ON و التي يليها بدورها تحديد لوصف الوصلة بين الحقلين

و نلاحظ أيضا أن الوصلة عبر عنها ب Employees INNER JOIN Orders  أي الجدول الرئيسي ثم الجدول الذي به حقل الغريب ( أو جانب المتعدد من العلاقة )

 

 

ثم لنفتح الاستعلام الاخير فى وضع التصميم

و لنحفظه باسم Employees Query2

 

و فيه لنعدل العلاقة بين الجدولين ( بالنقر المزدوج علي خط العلاقة ) و لنختار اظهار جميع البيانات من جدول employees و البيانات المناظر فقط من جدول Orders فتتحول العلاقة من خط عادي الي خط به سهم ناحية جدول ال orders

 

 و الغرض هو معرفة كيفية التعبير عن هذه النوعية من العلاقات بجمل ال سي كيو ال

 

SELECT Employees.EmployeeID, Employees.Title, Employees.HireDate, Employees.City, Orders.OrderID
FROM Employees LEFT JOIN Orders ON Employees.EmployeeID = Orders.EmployeeID;
 

 و كما تلاحظون فتأثير تغيير نوع العلاقة هو اضافة كلمة left قبل ال Join

 و هذا يعني  أن  العلاقة بين الجدولين تعبر عن ادراج جميع السجلات من الجدول قبل كلمة Left Join   و المناظر لها فقط فى الطرف الاخر من العلاقة و الموجود بعد كلمة Left Join .

 

أي أن جميع السجلات الموجودة فى الجدول يسار كلمة ال Join فى تعبير الاس كيو ال سيتم ادراجها ، بالاضافة الي ما يناظرها من الجدول المكتوب يمين الكلمة

 

 

و اذا غيرنا العلاقة الي ادارج السجلات المتطابقة فقط فى الجدولين ، ستعود الجملة الي

 

SELECT Employees.EmployeeID, Employees.Title, Employees.HireDate, Employees.City, Orders.OrderID
FROM Employees INNER JOIN Orders ON
Employees.EmployeeID = Orders.EmployeeID;

و بذلك نعرف أن تعريف Inner Join يعني اختيار السحلات الموجودة فقط فى طرفي العلاقة
 

و اذا اخترنا ادراج جمبع سجلات ال orders  و المناظر لها فقط من emplyoees

 

SELECT Employees.EmployeeID, Employees.Title, Employees.HireDate, Employees.City, Orders.OrderID
FROM Employees RIGHT JOIN Orders ON Employees.EmployeeID = Orders.EmployeeID;
 

أي أن جميع السجلات الموجودة فى الجدول يمين كلمة ال Join فى تعبير الاس كيو ال سيتم ادراجها ، بالاضافة الي ما يناظرها من الجدول المكتوب يسار الكلمة

 

و الآن لنكرر استخدام

امعالج  مع اختيار بيانات كالتالي :

Freight  من جدول orders

City من جدول Employees

 

أي قيمة  الشحن من جدول الطلبيات و مدينة الموظف  من جدول الموظفين

ثم نكمل

و لكن عند شاشة اختيار التفاصيل

 

 

سنختار summary

ثم

Summary options

 

و نختار التجميع و عد السجلات كما فى الشاشة

 

 

 

 

 

و نحفظها باسم  Employees Query3

 

و الاستعلام الناتج يعني احصائية بقيمة الشحن و عدد الطلبات الي كل مدن المولد للموظفين العاملين

 

و شكل الاستعلام فى وضع التصميم كالتالي :

 

و فى وضع العرض

 

و جملة الاس كيو الي المناظرة :

 

 

SELECT DISTINCTROW Employees.City, Sum(Orders.Freight) AS [Sum Of Freight], Count(*) AS [Count Of Orders]
FROM Employees INNER JOIN Orders ON Employees.EmployeeID = Orders.EmployeeID
GROUP BY Employees.City;
 

 

و الجديد  فى هذه الجملة بعد اختيار خيار التلخيص هو التالي :

 

ظهور كلمة DISTINCTROW و التي تعبر عن اختيار القيم بدون تكرار ، أي نختار أسماء البلاد الموجدة فى جدول الموظفين ، دون تكرار أي تظهر اسم البلد مرة واحدة فقط ، علي الرغم من تكراره عشرات المرات فى الاستعلام الذي يجمع جدولي الموظفين و الطلبيات

و أيضا استخدام الدوال للحصول علي قيم احصائية لاجمالي البيانات بجيث تناظر التلخيص الحادث باستخدام كلمة

DISTINCTROW

 أي  باستخدام دالة sum  نحصل علي اجمالي قيم الشحن للطلبيات التي أرسلت الي  لكل بلد من بلدان الموظقين

و باتستخدام دالة Count  بالحصول علي اجمالي عدد الطلبيات المناظرة لكل بلد

 

و كما سبق

فقد تم استخدام تعبير as  لاطلاق اسم علي كل من مجموع قيم الشحن و عدد السجلات

أيضا تم تجميع البيانات ببلد الموظف

 

و يمكن أيضا الغاء كلمة  DISTINCTROW   و الاعتماد علي التجميع فقط للحصول علي نفس النتيجة كما فى  Employees Query4

 

SELECT Employees.City, Sum(Orders.Freight) AS [Sum Of Freight], Count(*) AS [Count Of Orders]
FROM Employees INNER JOIN Orders ON Employees.EmployeeID=Orders.EmployeeID
GROUP BY Employees.City;
 

 

و لمثال أبسط راجع الاستعلام المسمي Employees Query5

و به الجملة الاتية

SELECT  DISTINCTROW Employees.Country
FROM  Employees
GROUP BY Employees.Country;
 

و نتيجتها هو سجلان فقط بها بلدان

كما يمكن الحصول علي نفس  النتيجة بالجملة التالية

كما فى الاستعلام المسمي Employees Query6

SELECT  Employees.Country
FROM  Employees
GROUP BY  Employees.Country;

 

 

 

اذا ما الفرق ، و لماذا أضفنا كلمة DISTINCTROW   ؟؟

 

لنتعرف علي السبب راجع الاستعلام المسمي  Employees Query7  و به البيانات كاملة للمدن المنتاظرة لليلاد فى جدول الموظفين

SELECT  Employees.Country, Employees.City
FROM Employees;
 

و به تسعة سجلات

 

لنفتح الاستعلام فى وضع التصميم ، و ننقر فى أي مكان خالي فى الشاشة العلوية

ثم لنختار خصائص الاستعلام properties

ثم لنختار خاصية unique records

 و نغيرها الي نعم

 


 

 

ثم نحفظ الاستعلام باسم  Employees Query8

و لنعرضه

سنجد أن الحالة لم تتغير و انما فقط أضيفت كلمة DISTINCTROW   الي الاستعلام ،  و لكن نتيجة عرض السجلات لم تتغير ، مازالت تسعة سجلات

 

SELECT DISTINCTROW Employees.Country, Employees.City
FROM Employees;
 

 

اذا لنعد الي خصائص الاستعلام ، و نغير خاصية unique values  الي نعم ، سنجد أن خاصية unique records  تغيرت اليا الي نعم ،  وأضيفت كلمة  DISTINCT  الي الاستعلام ، و أصبحت نتيجة العرض 4 سجلات فقط ، أي تم عرض كل بلد مع المدينة المناظرة مرة واحدة

 

SELECT DISTINCT Employees.Country, Employees.City
FROM Employees;
 

 

 

اذا ما الفرق بين الخاصيتين و متي نستخدم كل منهما ؟

الفرق أن خاصية unique records   تستخدم فى حالة ادراج بيانات من أكثر من جدول

و باختيارها يتم اضافة نعبير  DISTINCTROW  الي الاستعلام

لذلك افتح الاستعلام رقم 3  و راجع قيمة الخاصية ، ستجدها مفعلة

 

و الان لننشيء استعلام جديد بنفس الاسم  و برقم 9

و من وضع التصميم لنضيف جدول الموظفين و جدول الطلبيات

و لنختار بلد الموظف من جدول الموظفين Employees

ثم لضيف حقل يلد الشحن من جدول الطلبات Orders

فنجد ان لدينا استعلام به 830 سجل عبارة عن عدد الطلبيات و كل سجل به بلد العامل و بلد الشحن

 

SELECT DISTINCTROW Employees.City, Orders.ShipCity
FROM Employees INNER JOIN Orders ON Employees.EmployeeID = Orders.EmployeeID
GROUP BY Employees.City, Orders.ShipCity;
 

 

لنعود الي وضع التصميم فى الاستعلام ، و نختار خاصية unique records  من خصائص الاستعلام

 

فنجد أن الجملة تحولت الي

 

SELECT DISTINCTROW Employees.City, Orders.ShipCity
FROM Employees INNER JOIN Orders ON Employees.EmployeeID = Orders.EmployeeID;
 

و لكن التأثير علي السجلات المعروضة غير واضح

فما زال العدد المعروض 830

 

اما اذا اخترنا unique values

فتصبح الجملة

 

SELECT DISTINCT Employees.City, Orders.ShipCity
FROM Employees INNER JOIN Orders ON Employees.EmployeeID = Orders.EmployeeID;
 

 و السجلات المعروضة هي 292 سجل تمثل اظهار المدينة لمرة واحدة مع البلد

 

اذا ليس الفرق فقط فى اختيار البيانات من أكثر من جدول ، و لكن الفرق الآخر فى أن DISTINCTROW     تبحث عن البيانات الغير مكررة فى السجلات الاصلية بالكامل ، و ليس فقط فى الحقول المختارة فى الاستعلام

 

و لنجرب ذلك لنختار عرض استعلام مبني علي الجدول المسمي Emp2 و الذي تم فيه تكرار بيانات اثنان من العاملين و الغاء المفتاح و تحويل حقل الترقيم التلقائي الي رقمي مفهرس لكي يكون تكرار السجلات كاملا

و الان لننشيئ استعلام جديد ميني علي هذا الجدول ، و نختار كل السجلات ( باختيار ال *  من أعلي الجدول )

 

فتكون الجملة

 

SELECT Emp2.*
FROM Emp2;
 

 و بعرض الاستعلام نجد عدد السجلات = 2 فى الاستعلام QEmp2

و بتعديل خاصية  unique records  الي نعم

 

تصبح الجملة

 

SELECT DISTINCTROW Emp2.*
FROM Emp2;
 

و علي الرغم من ذلك مازال عدد السجلات المعروضة = 2 سجل

أي لا تأثير ، أي أننا جققنا شرط تكرر السجل بالكامل ، الا أننا لم نحقق شرط و جود البيانات من أكثر من جدول

 

لذا لننشيء استعلام  باسم QEmp3

 و نختار كل السجلات ( باختيار ال *  من أعلي جدول الموظفين )

و لنضيف جدول ال area  و منه نختار   حقل ال area

و بذلك نكون حققنا الشرطين ، و نتوقع أن تكون السجلات عددها سجل واحد

SELECT Emp2.*, Area.Area
FROM Emp2 INNER JOIN Area ON Emp2.EmployeeID=Area.EmployeeID;
 

و لكن مازال  الناتج يعطي ضعف عدد السجلات أي 2  سجل

 

و الآن لنغير خاصية unique records الي نعم

 

فتصبح الجملة

 

SELECT DISTINCTROW Emp2.LastName, Area.Area
FROM Area INNER JOIN Emp2 ON Area.EmployeeID = Emp2.EmployeeID;
 

و عدد السجلات المعروضة = 2 ، و هذا ما لم يكن متوقعا

فحسب ما  ينص ملف التعليمات أنه من المفترض أن يكون الناتج سجل واحد

و قد توقفت عند هذه النقطة لفترة ، و لكن رأيت طرحها كما واجهتها ، و فى انتظار إضافاتكم

 

عموما اذا أردنا الوصول الي النتيجة السليمة فلنستخدم خاصية التجميع Group By  باستخدام حقل أو أكثر كما فى الامثلة السابقة

 

و كملخص للجزء الأخير

يستخدم تعبير DISTINCT  المناظر لخاصية unique values للحصول علي السجلات الفريدة من حيث الحقول التي إخترنا إظهارها فى الاستعلام

 

و تعبير DISTINCTROW   المناظر لخاصية unique records للحصول علي السجلات الفريدة كليا ، و ليس من حيث الحقول المختارة فقط ، أي كل الحقول فى الجداول التي نمثل مصدر الاستعلام

و يشترط لكي تعمل أن يكون الاستعلام مبني علي أكثر من جدول و ان نختار علي الاقل حقل من كل من الجداول

( و ان كان ذلك لم يعمل بصورة صحيحة فى المثال السابق )

 

و أعتقد اننا توقفنا فى هذه النقطة أكثر من اللازم ، و لنكمل باقي الحديث

 

===============================

 

 

بالعودة الي إطار قاعدة البيانات و إختيار خيار الاسنعلامات من الجزء الايسر ( الصورة الاولي فى هذا الدرس)

يوجد زر "جديد " New فى الحزء العلوي من الاطار

يظهر مربع جوار به خمسة  خيارات

 

- وضع التصميم

- معالح الاستعلام

- معالح الاستعلام المحوري

- معالج استعلام القيم المكررة

- معالح استعلام القيم الغير متطالقة

 

 

 و قد عرضنا الي أول خيارين ، و ما يلي هو عرض الخيارات الثلاثة الأخري : إستعلام  الجداول المحورية ، إٍستعلام إيجاد القيم المتكررة  ، و إستعلام إيحاد القيم الغير متماثلة

 

الي الأعلي

 

 

استعلام  الجداول المحورية ( الاستعلام الجدولي )

 

هذا النوع من الاستعلامات الغرض منه اعادة هيكلة البيانات ، أي تحويل جدول عادي الي جدول تحليل للبيانات من خلال تجميع صفوف و تحليل البيانات فى أعمدة طبقا لقيمة حقل معين

و ستتضح الصورة أكثر مع بدء التطبيق

 

من اختيار الاستعلامات من اطار قاعدة البيانات لنختار

New

 Create Crosstab Query Wizard

 

فتظهر شاشة بها اسماء الجداول و الاستعلامات

فنختار جدول الموظفين employees

 ثم نضغط

next

 

فتظهر قائمة باسماء الحقول ، لنختار منها الحقول المطلوب ظهورها فى عناوين الصفوف

و يمكننا الاختيار بحد اقصي 3 حقول

و نراعي أن يكون الاختيار بالترتيب تبعا للترتيب الذي نود أن تظهر به الحقول

 

و هنا لنختار

Country

City

 و نضغط  Next

 

فتظهر الشاشة التالية ، و التي نختار منها أحد الحقول ( حقل واحد ) لتكون قيمه المختلفة تمثل عناوين الأعمدة

و هنا سنختار

Title

 و نضغط  Next

 

فتظهر شاشة جديدة ، لنختار منها البيانات التي ستظهر داخل الجدول

و هنا سنختار

اختيارين ، الحقل و الدالة المطلوب تطبيقها علي القيم الموجودة داخل الحقل

و هنا سنختار EmplyeeID و الدالة Count

أي ستكون بيانات الجدول عبار عن عدد العاملين مصنفة رأسيا تبعا للبلد ثم المدينة و أفقيا تبعا لللقب

 

 

 ثم نضغط

next

 

و نحفظ الاستعلام باسم

Employees_Crosstab

 

و لنفتح الجدول لنشاهد ما فيه أولا

 

ثم بنفتحه في وضع التصميم لنجد الاتي

 

 

 

و الجديد هو ظهور خانة جديدة تسمي Cross tab

 و القيم بها تكون أحد أربعة خيارات

 

Row Heading  عنوان الصف

Column Heading عنوان العمود

Value قيمة

Not Shown لا تظهر

 

و الاخيرة تستخدم حال استخدام حقل كمعيار شرطي للبيانات و لا نريد أن يظهر

 

لنحفظ الاستعلام بنفس الاسم مع اضافة2 : Employees_Crosstab2

 

 و لنضع فيه الشرط التالي

حقل BirthDate   بين 25/01/1955  و 31/12/1960

و تكون كتابة الشرط كالتالي

Between #25/01/1955# And #31/12/1960#

 

و بالتالي يتم عمل تصفية  للبيانات طبقا لهذا الشرط كما فى المثال

 

و لنتصفح المثال لنري النتيجة

 

ثم لنفتح عرض ال سي كيو ال لنجد الجملة التالية :

 

TRANSFORM Count(Employees.EmployeeID) AS CountOfEmployeeID
SELECT Employees.Country, Employees.City, Count(Employees.EmployeeID) AS [Total Of EmployeeID]
FROM Employees
WHERE (((Employees.BirthDate) Between #1/25/1955# And #12/31/1960#))
GROUP BY Employees.Country, Employees.City, Employees.BirthDate
PIVOT Employees.Title;
 

 

و الجديد فيها هو تعبير TRANSFORM الذي بدأ به الجملة ، و يليه وصف البيانات ، و PIVOT الذي يسبق الحقل المستخدم كعناوين للاعمدة و الذي تنتهي به الجملة

 

و جدير بالذكر أن استعلام الجداول المحورية ، لا يقارن من حيث القوة بنظيره فى الاكسيل

و يوجد هنــــــــــــــــــــا  شرح لنظيره فى برنامج الاكسيل الذي يعتبر أكثر قوة و امكانيات ،

 

 

الي الأعلي

 

 

 

إٍستعلام إيجاد القيم المتكررة

 

من اختيار الاستعلامات من اطار قاعدة البيانات لنختار

New

Find Duplicated Query Wizard

 

 

و الغرض منه هو ايجاد القيم المتكررة فى حقل ما

 

و لنختار هذا الخيار ،ـ فتظهر شاشة بها أسماء الجداول و الاستعلامات

و نختار جدول Orders

و لنتجه الي الشاشة التالية ، و نختار منها الحقل المطلوب ، و الذي سيتم استخراج السجلات التي تكررت بها قيم هذا الحقل

 و لنختار ShippedDate  أو تاريخ الشحن

ثم نتجه للشاشة التالية

و منها نختار الحقول التي ستظهر عند عرض الاستعلام ، و لنختر أي مجموعة من الحقول

 

ثم لنحفظ الاستعلام باسم

Find duplicates for Orders

 و لفتحه ، سنجد أن به 652 سجل ، و هل السجلات التي تكرر بها هذا الحقل

من اجمالي 830 سجل فى الجدول الاصلي

 

لنفتح الاستعلام فى وضع التصميم لنجد أن تصميم الاستعلام عبارة عن الحقول التي اخترناها بالاضافة الي وجود معيار فى حقل ShippedDate كما يلي :

 

 

In (SELECT [ShippedDate] FROM [Orders] As Tmp GROUP BY [ShippedDate] HAVING Count(*)>1 )

 

 

و هذا يعني استخدام الدالة In و التي تعبر عن وجود قيمة بين مجموعة من القيم و تعيد قيمة نعم أو لا

فاذا كانت القيمة موجودة بين السجلات المختارة تعيد "نعم" و اذا لم تكن موجودة تعيد "لا")

و هنا مجموعة السجلات تم تكوينها باستخدام جملة SQL  التالية :

SELECT [ShippedDate] FROM [Orders] As Tmp GROUP BY [ShippedDate] HAVING Count(*)>1

أي عمل تجميع بالتاريخ بناء علي حقل    ShippedDate  و عمل تصفية علي التاريخ الذي يكون عدد مرات تكراره أكبر من واحد

 

 

الي الأعلي

 

إستعلام إيحاد القيم الغير متماثلة

 

من اختيار الاستعلامات من اطار قاعدة البيانات لنختار

New

Find Unmatched Query Wizard

 

 

و هذه النوعية من الاستعلامات نحصل منها علي السجلات التي لا توجد لها سجلات مناظرة فى حقل الارتباط ( طرفي العلاقة بين جدولين ) .

أي تجيب علي السؤال : فى جدول 1 مرتبط بجدول 2 من خلال الحقل س ، فاي السجلات فى الحقل س في الجدول 1 بها قيم غير موجودة فى الحقل س فى الجدول 2

 

و لنبدأ تنفيذ المعالج ، و لنختار من الشاشة الاولي الجدول الذي نريد أن نظهر السجلات التي ليس لها نظير فى جدول آخر منه و هو هنا جدول Employees ثم الجدول المرتبط و هو جدول area

فتظهر لنا شاشة بها مربعي عرض يمثلان حقول الجدولين ، لنحدد منها حقلي الارتباط ، ثم نضغط علي العلامة بين الجدولين

و اذا كانت هناك علاقة بين الجدولين فسيتم استنتاج الارتباط تلقائيا بناء علي هذه العلاقة

و فى الشاشة الاخيرة سنختار الحقول التي ستظهر فى عرض الاستعلام ، و لنختار اي حقول و ذلك بالنقر المذدوج عليها أو باختيارها ثم ضغط السهم المتجه الي اليمين

 

و لنحفظ الاستعلام باسم

Employees Without Matching Area

 و لنفتحه فى وضع العرض لنجد انه لم يعرض أي سجلات

و معني ذلك ان الحقول المرتبطة فى الجدول الاول كلها يوجد نظير لها فى الثاني

 

و هنا هما العامل رقم 8 و 9

 

و الآن كما تعودنا ، لنفتح الاستعلام فى وضع التصميم

 

لنجد أن الاستعلام هو عبارة عن عرض للسجلات المختارة نتيجة علاقة من نوع اختيار كل سجلات جدول الموظفين و ما يناظرها فقط من جدول ال area  مع وجود شرط علي حقل ال EmplyoeeID أنه لا يكون خالي القيمة ( Null )

 

 و جملة الاس كيو ال المناظرة هي

 

SELECT Employees.EmployeeID, Employees.LastName, Employees.FirstName
FROM Employees LEFT JOIN Area ON Employees.EmployeeID = Area.EmployeeID
WHERE (((Area.EmployeeID) Is Null));
 

و لا جديد فيها بالنسبة لما سبق

 

----------------

الي الأعلي

 

 المجموعات فى الأكسس

 

بعد أن أصبح لدينا بعض الاستعلامات و الجداول معا فى نفس القاعدة
و لكلي نكمل التعرف علي الشاشة الافتتاحية  :



نري فى يسار الشاشة المجموعات Groups
و قد حان الوقت  لنتعرف عليها و علي فائدتها :

تتيح لك المجموعات إمكانية تنظيم قاعدة البينات بالاسلوب الذي يناسبك ، و ذلك بوضع اختصارات للكائنات المرتبطة فى مكان واحد (مجموعة )

مثلا اذا كنت تريد أن تري جدول و استعلام أو أكثر  بينهم ارتباط معبن فى الاستخدام ، بسهولة فى مكان واحد فعليك بالمجموعات

لانشاء مجموعة : استخدم الزر الايمن للماوس فى المساحة الموجودة تحت شريط groups و اختار انشاء مجموعة جديدة new group

و بعد ذلك يمكنك سحب الكائنات من الصفحات الأخري لاطار قاعدة البيانات الي المجموعة الجديدة ، فيتم بذلك اضافة الختصارات لها في هذه المجموعة

 

فيكون لديك مجموعات من الكائنات المختلفة ( جداول - نماذج - استعلامات - تقارير -.....) تكونها بحسب سهولة الاستخدام لتسهيل الوصول اليها ، و هذه الامكانية مفيدة جدا فى حالة قواعد البيانات الضخمة

 

و كمثال علي ذلك تم انشاء مجموعة فى المثال المرفق باسم اوفيسنا1 و تم سحب جدولين و استعلامين اليها ، فتم تكوين اختصارات لهذه الكائنات داخل المجموعة لتسهيل الوصول اليها

 

 

 

----

 

تم

 

الجزء الاول من شرح استعلامات الاختيار

 

الي الأعلي