تحرير جمل SQL لتحسين نتائج الاستعلام
Applies ToAccess لـ Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

إذا كانت استعلاماتك لا تعمل بجد كاف، فقد تساعد إضافة بعض عبارات SQL الأساسية في تركيز نتائجك. لنلق نظرة على بعض أنواع عبارات SQL والعبارات أو الأجزاء التي قد تقوم بتحريرها للحصول على النتائج التي تريدها.

ملاحظة:  لا تنطبق هذه المقالة على تطبيقات Access على الويب – نوع قاعدة البيانات التي تصممها باستخدام Access وتنشرها عبر الإنترنت.

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

إنشاء عبارة Select

تحتوي عبارة تحديد SQL على عبارة من 2 إلى 3 عبارات. تخبر عبارة SELECT قاعدة البيانات بمكان البحث عن البيانات وتطالبها بإرجاع نتيجة معينة.

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

تطلب عبارة التحديد التالية من Access الحصول على معلومات من عمودي عنوان البريد الإلكتروني والشركة، من جدول جهات الاتصال، وتحديدا المكان الذي يعثر فيه على "سياتل" في عمود المدينة.

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

يحتوي الاستعلام أعلاه على ثلاث عبارات SELECT و FROM و WHERE.

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

2. تحدد عبارة FROM الجدول المصدر. في هذا المثال، يحتوي على عامل تشغيل (FROM) متبوعا بمعرف (جهات الاتصال).

3. عبارة WHERE عبارة اختيارية. يحتوي المثال على عامل تشغيل (WHERE) متبوعا بتعبير (City="Seattle").

لمزيد من المعلومات حول استعلامات التحديد، راجع إنشاء استعلام تحديد بسيط.

فيما يلي قائمة بجمل SQL الشائعة:

عبارة SQL

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

هل هو مطلوب ؟

SELECT

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

نعم

FROM

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

نعم

WHERE

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

لا

ترتيب حسب

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

لا

GROUP BY

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

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

HAVING

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

لا

تتكون كل عبارة SQL من شروط. فيما يلي قائمة ببعض مصطلحات SQL الشائعة.

مصطلح SQL

التعريف

مثال

المعرف

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

[عنوان البريد الإلكتروني] والشركة

عامل تشغيل

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

AS

ثابت

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

42

تعبير

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

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

أعلى الصفحة

تخصيص عبارة SELECT

تخصيص

مثال

لرؤية القيم المميزة فقط.

استخدم الكلمة الأساسية DISTINCT في عبارة SELECT.

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

SELECT DISTINCT [txtCustomerPhone] 

لتغيير الطريقة التي يظهر بها المعرف في طريقة عرض ورقة البيانات لتحسين قابلية القراءة.

استخدم عامل تشغيل AS (كلمة أساسية تمثل إجراء أو تعدل إجراء) مع اسم مستعار للحقل في عبارة SELECT. الاسم المستعار للحقل هو الاسم الذي تقوم بتعيينه لحقل لتسهيل قراءة النتائج.

SELECT [txtCustPhone] AS [Customer Phone]

تخصيص عبارة FROM

تخصيص

مثال

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

لتحديد البيانات من حقلين، كلا من المعرف المسمى، أحدهما يأتي من الجدول tblCustomer والآخر من الجدول tblOrder:

SELECT [tblCustomer].[ID],        [tblOrder].[ID]

استخدم عامل تشغيل AS لتعريف الأسماء المستعارة للجدول في عبارة FROM:

FROM [tblCustomer] AS [C],      [tblOrder] AS [O] 

يمكنك بعد ذلك استخدام الأسماء المستعارة للجدول هذه في عبارة SELECT، كما يلي:

SELECT [C].[ID],        [O].[ID]

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

ضم الجداول بحيث يجمع الاستعلام العناصر من الجداول، ويستبعد العناصر عندما لا يكون هناك سجل مطابق في الجدول الآخر

إليك ما قد تبدو عليه عبارة FROM:

FROM [tblCustomer] INNER JOIN [tblOrder]ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID] 

حول استخدام الصلات

هناك نوعان من الصلات، الصلات الداخلية والخارجية. الصلات الداخلية أكثر شيوعا في الاستعلامات. عند تشغيل استعلام مع صلة داخلية، تظهر النتيجة فقط تلك العناصر التي توجد فيها قيمة شائعة في كلا الجدولين المنضمين.

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

FROM table1 [ LEFT | RIGHT ] JOIN table2ON table1.field1 = table2.field2

راجع المزيد من المعلومات حول استخدام الصلات في استعلام في ربط الجداول والاستعلامات.

أعلى الصفحة

تخصيص عبارة WHERE

تتضمن عبارة WHERE معايير تساعد على الحد من عدد العناصر التي تم إرجاعها في استعلام. راجع أمثلة معايير الاستعلام وكيفية عملها.

مثال على كيفية تخصيص عبارة WHERE الأساسية هو الحد من نتائج الاستعلام؛ لنفترض أنك تريد تحديد موقع رقم هاتف العميل، ولا يمكنك تذكر اسمه الأخير إلا باسم Bagel. في هذا المثال، يتم تخزين أسماء العائلة في حقل LastName، لذلك سيكون بناء جملة SQL:

WHERE [LastName]='Bagel'

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

WHERE field1 LIKE field2

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

أعلى الصفحة

التخصيص باستخدام عامل تشغيل UNION

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

SELECT name, price, warranty, exclusive_offerFROM ProductsUNION ALLSELECT name, price, guarantee, exclusive_offer FROM Services;

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

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

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

أعلى الصفحة

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

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

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

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