إذا كانت استعلاماتك لا تعمل بجد كاف، يمكن أن تساعد إضافة بعض عبارات SQL الأساسية في تركيز نتائجك. لنلق نظرة على بعض أنواع عبارات SQL والعبارات أو الأجزاء التي قد تقوم بتحريرها للحصول على النتائج التي تريدها.
في هذه المقالة
- إنشاء عبارة Select
- تخصيص عبارة SELECT
- تخصيص عبارة FROM
- تخصيص عبارة WHERE
- التخصيص باستخدام عامل تشغيل UNION
إنشاء عبارة Select
تحتوي عبارة تحديد SQL على عبارة من 2 إلى 3 عبارات. تخبر عبارة SELECT قاعدة البيانات بمكان البحث عن البيانات وتطالبها بإرجاع نتيجة معينة.
ملاحظة
تنتهي عبارات SELECT دائما بفواصل منقوطة (;) إما في نهاية العبارة الأخيرة أو على سطر بحد ذاته في نهاية عبارة SQL.
تطلب عبارة التحديد التالية من Access الحصول على معلومات من عمودي عنوان البريد الإلكتروني والشركة، من جدول جهات الاتصال، وتحديدا المكان الذي يعثر فيه على "سياتل" في عمود المدينة.
يحتوي الاستعلام أعلاه على ثلاث عبارات 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 الشائعة.
تخصيص عبارة SELECT
| تخصيص | مثال |
|---|---|
| لرؤية القيم المميزة فقط. استخدم الكلمة الأساسية DISTINCT في عبارة SELECT. |
على سبيل المثال، إذا كان عملاؤك من عدة مكاتب فرعية مختلفة وكان للبعض رقم الهاتف نفسه وتريد فقط رؤية رقم هاتف مدرج مرة واحدة، فإن عبارة SELECT الخاصة بك ستكون كما يلي:SELECT DISTINCT [txtCustomerPhone] |
| لتغيير الطريقة التي يظهر بها المعرف في طريقة عرض ورقة البيانات لتحسين قابلية القراءة. استخدم عامل تشغيل AS (كلمة أساسية تمثل إجراء أو تعدل إجراء) مع اسم مستعار للحقل في عبارة SELECT. الاسم المستعار للحقل هو الاسم الذي تقوم بتعيينه لحقل لتسهيل قراءة النتائج. |
SELECT [txtCustPhone] AS [Customer Phone] |
تخصيص عبارة FROM
| تخصيص | مثال |
|---|---|
| يمكنك استخدام اسم مستعار للجدول أو اسم مختلف تقوم بتعيينه إلى جدول في عبارة تحديد. يكون الاسم المستعار للجدول مفيدا إذا كان اسم اسم الجدول طويلا، خاصة عندما يكون لديك حقول متعددة لها نفس الاسم من جداول مختلفة. | لتحديد البيانات من حقلين، كلا من المعرف المسمى، أحدهما يأتي من الجدول tblCustomer والآخر من الجدول tblOrder: SELECT [tblCustomer]. [المعرف]، [tblOrder]. [المعرف] استخدم عامل تشغيل AS لتعريف الأسماء المستعارة للجدول في عبارة FROM: FROM [tblCustomer] AS [C], [tblOrder] AS [O] يمكنك بعد ذلك استخدام الأسماء المستعارة للجدول هذه في عبارة SELECT، كما يلي:SELECT [C]. [المعرف]، [O]. [المعرف] |
| استخدم الصلات لدمج أزواج السجلات من مصدري بيانات في نتيجة واحدة أو لتحديد ما إذا كان يجب تضمين سجلات من أي جدول إذا لم يكن هناك سجل مطابق في الجدول ذي الصلة. ضم الجداول بحيث يجمع الاستعلام العناصر من الجداول، ويستبعد العناصر عندما لا يكون هناك سجل مطابق في الجدول الآخر |
إليك ما قد تبدو عليه عبارة FROM:FROM [tblCustomer] INNER JOIN [tblOrder] ON [tblCustomer]. [CustomerID]=[tblOrder]. [CustomerID] |
حول استخدام الصلات
هناك نوعان من الصلات، الصلات الداخلية والخارجية. الصلات الداخلية أكثر شيوعا في الاستعلامات. عند تشغيل استعلام مع صلة داخلية، تظهر النتيجة فقط تلك العناصر التي توجد فيها قيمة شائعة في كلا الجدولين المنضمين.
تحدد الصلات الخارجية ما إذا كنت تريد تضمين بيانات حيث لا توجد قيمة شائعة. الصلات الخارجية اتجاهية، ما يعني أنه يمكنك تحديد ما إذا كنت تريد تضمين جميع السجلات من الجدول الأول المحدد في الصلة (تسمى الصلة اليسرى)، أو لتضمين جميع السجلات من الجدول الثاني في الصلة (تسمى الصلة اليمنى). تحتوي الصلة الخارجية على بناء جملة SQL التالي:
FROM table1 [ LEFT | RIGHT ] JOIN table2
ON 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_offer
FROM Products
UNION ALL
SELECT name, price, guarantee, exclusive_offer
FROM Services;
عند تشغيل الاستعلام، يتم دمج البيانات من كل مجموعة من الحقول المقابلة في حقل إخراج واحد. لتضمين أي صفوف مكررة في النتائج، استخدم عامل التشغيل ALL.
ملاحظة
يجب أن تحتوي عبارة Select على نفس عدد حقول الإخراج، بالترتيب نفسه، وبنفس أنواع البيانات أو أنواع البيانات المتوافقة. لأغراض استعلام موحد، يكون نوعا البيانات "رقم" و"نص" متوافقين.
لمزيد من المعلومات حول استعلامات الاتحاد، راجع استخدام استعلام موحد لعرض نتيجة موحدة من استعلامات متعددة.