Access SQL: المفاهيم الأساسية والكلمات وبناء الجملة

ينطبق على
Access لـ 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 البسيطة التي تسترد قائمة بأسماء العائلة لجهات الاتصال التي اسمها الأول هي ماجدة قد تشبه ما يلي:

SELECT Last_Name
FROM Contacts
WHERE 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 جزء قابل للمقارنة من الكلام التعريف مثال
معرف اسم اسم تستخدمه لتعريف كائن قاعدة بيانات، مثل اسم حقل. العملاء. [رقم الهاتف]
عامل تشغيل فعل أو ظرف كلمة أساسية تمثل إجراء أو تقوم بتعديل إجراء. AS
ثابت اسم قيمة لا تتغير، مثل رقم أو NULL. 42
تعبير صفة تركيبة من المعرفات وعوامل التشغيل والثوابت والدالات التي يتم تقييمها إلى قيمة واحدة. >= المنتجات. [سعر الوحدة]

أعلى الصفحة

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

تأخذ عبارة SQL الشكل العام:

SELECT field_1
FROM table_1
WHERE criterion_1
;

ملاحظة

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

مثال في Access

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

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

1. عبارة SELECT

2. عبارة FROM

3. عبارة WHERE

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

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

عبارة SELECT

SELECT [E-mail Address], Company

هذه هي عبارة SELECT. وهو يتألف من عامل تشغيل (SELECT) متبوعا بمعرفين ([E-mail address] والشركة).

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

لا يجب أن تذكر عبارة 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

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

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

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

ORDER BY Company DESC, [E-mail Address]

ملاحظة

بشكل افتراضي، يقوم Access بفرز القيم بترتيب تصاعدي (من الألف إلى الياء، من الأصغر إلى الأكبر). استخدام الكلمة الأساسية 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_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، راجع دمج نتائج عدة استعلامات تحديد باستخدام استعلام موحد.

أعلى الصفحة