ess SQL: عبارة SELECT

Access SQL: عبارة FROM

Access SQL: عبارة WHERE

أعلى الصفحة

فرز النتائج: ORDER BY
مثل Microsoft Excel، يتيح لك Access فرز نتائج الاستعلام في ورقة بيانات. يمكنك أيضا تحديد الطريقة التي تريد بها في الاستعلام فرز النتائج عند تشغيل الاستعلام، باستخدام عبارة ORDER BY. إذا كنت تستخدم عبارة ORDER BY، فهي عبارة أخيرة في جملة SQL.

تحتوي عبارة ORDER BY على قائمة الحقول التي تريد استخدامها للفرز، بالترتيب نفسه الذي تريد تطبيق عمليات الفرز عليه.

على سبيل المثال، لنفترض أنك تريد فرز النتائج أولا حسب قيمة الحقل "الشركة" بترتيب تنازلي، وإذا كانت هناك سجلات بنفس القيمة للشركة، يتم فرزها إلى جانب القيم في "عنوان البريد الإلكتروني" في الحقل بترتيب تصاعدي. قد تشبه عبارة ORDER BY ما يلي:


ملاحظة: بشكل افتراضي، يفرز Access القيم بالترتيب التصاعدي (من أ إلى ي، من الأصغر إلى الأكبر). استخدم الكلمة الأساسية DESC لفرز القيم بترتيب تنازلي بدلا من ذلك.

لمزيد من المعلومات حول عبارة ORDER BY، راجع عبارة ORDER BY الموضوع.

أعلى الصفحة

استخدام البيانات الملخصة: GROUP BY و HAVING
قد ترغب في بعض الأحيان في استخدام بيانات ملخصة، مثل إجمالي المبيعات في شهر، أو أكثر العناصر تكلفة في المخزون. للقيام بذلك، يجب تطبيق وظيفة تجميعية حقل في عبارة SELECT. على سبيل المثال، إذا كنت تريد أن يظهر الاستعلام عدد عناوين البريد الإلكتروني المدرجة لكل شركة، فقد تشبه عبارة SELECT ما يلي:

SELECT COUNT
تعتمد الدالات التجميعية التي يمكنك استخدامها على نوع البيانات الموجودة في الحقل أو التعبير الذي تريد استخدامه. لمزيد من المعلومات حول الدالات التجميعية المتوفرة، راجع المقالة SQL Aggregate Functions.

تحديد الحقول غير المستخدمة في دالة تجميعية: عبارة GROUP BY
عند استخدام الدالات التجميعية، يجب عليك عادة إنشاء عبارة GROUP BY. تسرد عبارة GROUP BY كافة الحقول التي لا تطبق دالة تجميعية عليها. إذا قمت بتطبيق دالات تجميعية على كل الحقول في استعلام، لن تحتاج إلى إنشاء عبارة GROUP BY.

تتبع عبارة GROUP BY مباشرة عبارة WHERE أو عبارة FROM إذا لم يكن هناك عبارة WHERE. تسرد عبارة GROUP BY الحقول كما تظهر في عبارة SELECT.

على سبيل المثال، متابعة المثال السابق، إذا كانت عبارة SELECT تطبق دالة تجميعية على وليس على الشركة، فإن عبارة GROUP BY ستمثل ما يلي:

GROUP BY Company

لمزيد من المعلومات حول عبارة GROUP BY، راجع عبارة GROUP BY الموضوع.

تقييد القيم التجميعية باستخدام معايير المجموعة: عبارة HAVING
إذا كنت تريد استخدام معايير للحد من النتائج، ولكن الحقل الذي تريد تطبيق المعايير عليه يتم استخدامه في دالة تجميعية، فلا يمكنك استخدام عبارة WHERE. بدلا من ذلك، يمكنك استخدام عبارة HAVING. تعمل عبارة HAVING مثل عبارة WHERE، ولكن يتم استخدامها للبيانات المجمعة.

على سبيل المثال، افترض أنك تستخدم الدالة AVG مع الحقل الأول في عبارة SELECT:

SELECT COUNT, Company

إذا كنت تريد أن يقوم الاستعلام بتقييد النتائج استنادا إلى قيمة الدالة COUNT هذه، فلا يمكنك استخدام معايير لذلك الحقل في عبارة WHERE. بدلا من ذلك، ضع المعايير في عبارة HAVING. على سبيل المثال، إذا كنت تريد أن يقوم الاستعلام بإرجاع صفوف فقط إذا كان هناك أكثر من عنوان بريد إلكتروني واحد مقترن بالشركة، فقد تشبه عبارة HAVING ما يلي:

HAVING COUNT1

ملاحظة: يمكن أن يتضمن الاستعلام عبارة WHERE وعبارات HAVING — وهي معايير الحقول غير المستخدمة في دالة تجميعية، وتذهب في عبارة WHERE، أما معايير الحقول التي يتم استخدامها مع الدالات التجميعية، فيستخدمها الاستعلام في عبارة HAVING.

لمزيد من المعلومات حول عبارة HAVING، راجع الموضوع HAVING Clause.

أعلى الصفحة

دمج نتائج الاستعلام: UNION
عندما تريد مراجعة كل البيانات التي يتم إرجاعها بواسطة عدة استعلامات تحديد مماثلة معا، كم مجموعة مدمجة، يمكنك استخدام عامل تشغيل UNION.

يتيح لك عامل تشغيل UNION دمج عبارات SELECT في واحدة. يجب أن يكون لعبارات SELECT التي تقوم بدمجها عدد حقول الإخراج نفسه، بالترتيب نفسه، ومع أنواع البيانات نفسها أو أنواع البيانات المتوافقة. عندما تقوم بتشغيل الاستعلام، يتم دمج البيانات من كل مجموعة من الحقول المناظرة في حقل إخراج واحد، بحيث يحتوي إخراج الاستعلام على عدد الحقول نفسه لكل من عبارات تحديد.

ملاحظة: لأغراض الاستعلام التوحيدي، أنواع البيانات "رقم" و"نص" متوافقة.

عند استخدام عامل تشغيل UNION، يمكنك أيضا تحديد ما إذا كان يجب أن تتضمن نتائج الاستعلام صفوفا مكررة، إن وجدت، باستخدام الكلمة الأساسية ALL.

يكون بناء جملة SQL الأساسي لاستعلام اتحاد يجمع بين عبارات SELECT كما يلي:

SELECT field_1
FROM table_1
UNION [ALL]
SELECT field_a
FROM table_a
;
على سبيل المثال، لنفترض أن لديك جدولا يسمى "المنتجات" وآخر يسمى "الخدمات". يحتوي الجدولان على الحقول التي تحتوي على اسم المنتج أو الخدمة والسعر أو الضمان أو ضمان التوفر، وما إذا كنت تقدم المنتج أو الخدمة بشكل حصري. على الرغم من أن جدول المنتجات يخزن معلومات الضمان، ويخزن جدول "الخدمات" معلومات ضمانية، فإن المعلومات الأساسية هي نفسها (سواء كان منتج أو خدمة معينة تتضمن وعدا بالجودة). يمكنك استخدام استعلام اتحاد، مثل ما يلي، لدمج الحقول الأربعة من الجدولين:

SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services
;
لمزيد من المعلومات حول كيفية دمج عبارات SELECT باستخدام عامل تشغيل UNION، راجع دمج نتائج استعلامات تحديد متعددة باستخدام استعلام اتحاد.