Access SQL: المفاهيم الأساسية والمفردات وبناء الجملة
Applies ToAccess لـ Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

عندما تريد استرداد البيانات من قاعدة بيانات، فإنك تطلب البيانات باستخدام لغة الاستعلامات المركبة أو SQL. SQL هي لغة كمبيوتر تشبه اللغة الإنجليزية بشكل وثيق، ولكن برامج قاعدة البيانات هذه تفهم. يستخدم كل استعلام تقوم بتشغيله SQL خلف الكواليس.

يمكن أن يساعدك فهم كيفية عمل SQL في إنشاء استعلامات أفضل، ويمكن أن يسهل عليك فهم كيفية إصلاح استعلام لا يرجع النتائج التي تريدها.

هذه إحدى مجموعات المقالات التي تدور حول Access SQL. توضح هذه المقالة الاستخدام الأساسي ل SQL لتحديد البيانات، وتستخدم أمثلة لتوضيح بناء جملة SQL.

في هذه المقالة

ما هو SQL؟

SQL هي لغة كمبيوتر للعمل مع مجموعات من الحقائق والعلاقات بينها. تستخدم برامج قاعدة البيانات الارتباطية، مثل Microsoft Office Access، SQL للعمل مع البيانات. على عكس العديد من لغات الكمبيوتر، ليس من الصعب قراءة SQL وفهمه، حتى بالنسبة للمبتدئ. مثل العديد من لغات الكمبيوتر، SQL هو معيار دولي معترف به من قبل هيئات المعايير مثل ISO و ANSI.

يمكنك استخدام SQL لوصف مجموعات البيانات التي يمكن أن تساعدك على الإجابة عن الأسئلة. عند استخدام SQL، يجب استخدام بناء الجملة الصحيح. بناء الجملة هو مجموعة القواعد التي يتم من خلالها دمج عناصر اللغة بشكل صحيح. يستند بناء جملة SQL إلى بناء الجملة باللغة الإنجليزية، ويستخدم العديد من العناصر نفسها مثل بناء جملة Visual Basic for Applications (VBA).

على سبيل المثال، قد تشبه عبارة SQL البسيطة التي تسترد قائمة بأسماء العائلة لجهات الاتصال التي يكون اسمها الأول هو Mary ما يلي:

SELECT Last_NameFROM ContactsWHERE First_Name = 'Mary';

ملاحظة: لا يتم استخدام SQL فقط لمعالجة البيانات، ولكن أيضا لإنشاء وتغيير تصميم كائنات قاعدة البيانات، مثل الجداول. يسمى جزء SQL المستخدم لإنشاء كائنات قاعدة البيانات وتغييرها لغة تعريف البيانات (DDL). لا يغطي هذا الموضوع DDL. لمزيد من المعلومات، راجع المقالة إنشاء جداول أو فهارس أو تعديلها باستخدام استعلام تعريف البيانات.

عبارات SELECT

لوصف مجموعة من البيانات باستخدام SQL، يمكنك كتابة عبارة SELECT. تحتوي عبارة SELECT على وصف كامل لمجموعة من البيانات التي تريد الحصول عليها من قاعدة بيانات. يتضمن ذلك ما يلي:

  • الجداول التي تحتوي على البيانات.

  • كيفية ارتباط البيانات من مصادر مختلفة.

  • ما هي الحقول أو الحسابات التي ستنتج البيانات.

  • المعايير التي يجب أن تتطابق مع البيانات ليتم تضمينها.

  • ما إذا كان سيتم فرز النتائج وكيفية القيام بها.

عبارات SQL

مثل الجملة، تحتوي عبارة SQL على عبارات. تقوم كل عبارة بتنفيذ دالة لعبارة SQL. بعض العبارات مطلوبة في عبارة SELECT. يسرد الجدول التالي عبارات SQL الأكثر شيوعا.

عبارة SQL

الإجراء الذي ينفّذه

مطلوبة

SELECT

القوائم الحقول التي تحتوي على بيانات ذات أهمية.

نعم

FROM

القوائم الجداول التي تحتوي على الحقول المدرجة في عبارة SELECT.

نعم

WHERE

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

لا

ترتيب حسب

يحدد كيفية فرز النتائج.

لا

GROUP BY

في عبارة SQL التي تحتوي على دالات تجميعية، تسرد الحقول التي لم يتم تلخيصها في عبارة SELECT.

فقط إذا كانت هناك مثل هذه الحقول

HAVING

في عبارة SQL التي تحتوي على دالات تجميعية، تحدد الشروط التي تنطبق على الحقول التي تم تلخيصها في عبارة SELECT.

لا

شروط SQL

تتكون كل عبارة SQL من مصطلحات - قابلة للمقارنة مع أجزاء الكلام. يسرد الجدول التالي أنواع مصطلحات SQL.

مصطلح SQL

جزء قابل للمقارنة من الكلام

التعريف

مثال

المعرف

الاسم

اسم تستخدمه لتعريف كائن قاعدة بيانات، مثل اسم حقل.

العملاء. [رقم الهاتف]

عامل تشغيل

الفعل أو adverb

كلمة أساسية تمثل إجراء أو تعدل إجراء.

AS

ثابت

الاسم

قيمة لا تتغير، مثل رقم أو NULL.

42

تعبير

صفه

مجموعة من المعرفات وعوامل التشغيل والثوابت والدالات التي يتم تقييمها إلى قيمة واحدة.

>= المنتجات. [سعر الوحدة]

أعلى الصفحة

عبارات SQL الأساسية: SELECT و FROM و WHERE

تأخذ عبارة SQL النموذج العام:

SELECT field_1FROM table_1WHERE criterion_1;

ملاحظات: 

  • يتجاهل Access فواصل الأسطر في عبارة SQL. ومع ذلك، ضع في اعتبارك استخدام سطر لكل عبارة للمساعدة في تحسين قابلية قراءة عبارات SQL الخاصة بك لنفسك وللآخرين.

  • تنتهي كل عبارة SELECT بفواصل منقوطة (;). يمكن أن تظهر الفاصلة المنقوطة في نهاية العبارة الأخيرة أو على سطر بحد ذاته في نهاية عبارة SQL.

مثال في Access

يوضح ما يلي كيف قد تبدو عبارة SQL لاستعلام تحديد بسيط في Access:

علامة تبويب عنصر SQL تعرض عبارة «SELECT»

1. عبارة SELECT

2. عبارة FROM

3. عبارة WHERE

يقرأ هذا المثال عبارة SQL "حدد البيانات المخزنة في الحقول المسماة عنوان البريد الإلكتروني والشركة من الجدول المسمى جهات الاتصال، وتحديدا تلك السجلات التي تكون فيها قيمة الحقل City هي Seattle."

لنلق نظرة على المثال، عبارة واحدة في كل مرة، لمعرفة كيفية عمل بناء جملة SQL.

عبارة SELECT

SELECT [E-mail Address], Company

هذه هي عبارة SELECT. وهو يتكون من عامل تشغيل (SELECT) متبوعا بمعرفين ([عنوان البريد الإلكتروني] والشركة).

إذا كان المعرف يحتوي على مسافات أو أحرف خاصة (مثل "عنوان البريد الإلكتروني")، فيجب أن يكون محاطا بأقواس مربعة.

لا يجب أن تحدد عبارة SELECT الجداول التي تحتوي على الحقول، ولا يمكنها تحديد أي شروط يجب أن تفي بها البيانات المراد تضمينها.

تظهر عبارة SELECT دائما أمام عبارة FROM في عبارة SELECT.

عبارة FROM

FROM Contacts

هذه عبارة FROM. وهو يتكون من عامل تشغيل (FROM) متبوعا بمعرف (جهات الاتصال).

لا تسرد عبارة FROM الحقول التي سيتم تحديدها.

عبارة WHERE

WHERE City="Seattle"

هذه هي عبارة WHERE. وهو يتكون من عامل تشغيل (WHERE) متبوعا بتعبير (City="Seattle").

ملاحظة: على عكس العبارتين SELECT و FROM، فإن عبارة WHERE ليست عنصرا مطلوبا من عبارة SELECT.

يمكنك إنجاز العديد من الإجراءات التي تمكنك SQL من القيام بها باستخدام عبارات SELECT و FROM و WHERE. يتم تقديم مزيد من المعلومات حول كيفية استخدام هذه العبارات في هذه المقالات الإضافية:

أعلى الصفحة

فرز النتائج: ORDER BY

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

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

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

ORDER BY Company DESC, [E-mail Address]

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

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

أعلى الصفحة

العمل مع البيانات الملخصة: GROUP BY و HAVING

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

SELECT COUNT([E-mail Address]), Company

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

تحديد الحقول غير المستخدمة في دالة تجميعية: عبارة 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([E-mail Address]), Company

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

HAVING COUNT([E-mail Address])>1

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

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

أعلى الصفحة

الجمع بين نتائج الاستعلام: UNION

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

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

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

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

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

SELECT field_1FROM table_1UNION [ALL]SELECT field_aFROM table_a;

على سبيل المثال، افترض أن لديك جدولا يسمى Products وجدول آخر يسمى Services. يحتوي كلا الجدولين على حقول تحتوي على اسم المنتج أو الخدمة والسعر أو الضمان أو ضمان التوفر، وما إذا كنت تقدم المنتج أو الخدمة حصريا. على الرغم من أن جدول المنتجات يخزن معلومات الضمان، ويخزن جدول الخدمات معلومات الضمان، فإن المعلومات الأساسية هي نفسها (سواء كان منتج أو خدمة معينة تتضمن وعدا بالجودة). يمكنك استخدام استعلام موحد، مثل ما يلي، لدمج الحقول الأربعة من الجدولين:

SELECT name, price, warranty_available, exclusive_offerFROM ProductsUNION ALLSELECT name, price, guarantee_available, exclusive_offerFROM Services;

لمزيد من المعلومات حول كيفية دمج عبارات SELECT باستخدام عامل التشغيل UNION، راجع دمج نتائج العديد من استعلامات التحديد باستخدام استعلام موحد.

أعلى الصفحة

هل تحتاج إلى مزيد من المساعدة؟

الخروج من الخيارات إضافية؟

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

تساعدك المجتمعات على طرح الأسئلة والإجابة عليها، وتقديم الملاحظات، وسماعها من الخبراء ذوي الاطلاع الواسع.