لغة استعلام SQL. التعرف على جمل SQL ؛ إنشاء أبسط استعلامات SQL في Access باستخدام الأمر SELECT باستخدام عبارات IN و BETWEEN و LIKE أمثلة لقواعد بيانات الوصول و sql


Microsoft Access SQL و ANSI SQL مقارنة Microsoft Access SQL هو في الغالب ANSI-89 (المستوى 1) بعض ميزات ANSI SQL غير مستخدمة في Microsoft Access SQL يستخدم Microsoft Access SQL كلمات وميزات محجوزة لا يدعمها ANSI SQL في Access 2000 (MS Jet 4.0 ) الإضافات المضافة التي تجعل اللغة أقرب إلى معيار ANSI SQL-92 - الوضع متاح فقط عند استخدام موفر MS OLE DB لـ Jet


حدد بناء جملة الأمر (Microsoft Access) حدد [المسند] (* | جدول. * | [جدول.] Field_1 [، [جدول.] Field_2 [، ...]]) من تعبير [، ...] من قائمة تحديد جملة من تعبير الحقول التعبير هو تعبير يعرّف جدولاً أو أكثر لاسترداد البيانات منه. يمكن أن يكون هذا التعبير هو اسم جدول فردي أو اسم استعلام محفوظ أو نتيجة عملية INNER JOIN أو LEFT JOIN أو RIGHT JOIN. INNER JOIN ، LEFT JOIN RIGHT JOIN. انضم إلى الداخل ، وانضم إلى اليسار ، وانضم إلى اليمين.


SELECT Statement Arguments المسند (ALL أو DISTINCT أو DISTINCTROW أو TOP) هو أحد معايير الاختيار. تستخدم المسندات للحد من عدد السجلات التي تم إرجاعها. إذا كانت غير موجودة ، يتم استخدام المسند ALL افتراضيًا (يحدد جميع السجلات التي تطابق الشروط المحددة في جملة SQL). SQL DISTINCT - يستبعد السجلات التي تحتوي على قيم مكررة في الحقول المحددة. DISTINCTROW - يتجاهل البيانات بناءً على السجلات المكررة بالكامل بدلاً من الحقول المتكررة الفردية. يتم تجاهل دالة الإسناد DISTINCTROW إذا كان الاستعلام يحتوي على جدول واحد فقط أو على كافة حقول كافة الجداول. TOP n - إرجاع عدد محدد من السجلات في بداية أو نهاية النطاق الموصوف باستخدام عبارة ORDER BY. حدد]] من جدول الأقسام الخمسة الأكثر عددًا: حدد أفضل 5 موظف. [رمز القسم] ، العدد (اسم الموظف) AS number_of_employees من الموظف GROUP BY الموظف. [رمز القسم] ORDER BY Count (الموظف.اسم) DESC ؛


SELECT Statement Arguments Table هو اسم الجدول الذي سيتم استرداد السجلات منه. WITH OWNERACCESS OPTION - يُستخدم في بيئة عمل آمنة متعددة المستخدمين لمجموعة العمل لمنح المستخدم الذي يعمل بأذونات الطلب التي تتطابق مع أذونات مالك الطلب. field_1 ، field_2 - أسماء الحقول التي يجب اختيار البيانات منها. إذا قمت بتضمين حقول متعددة ، فسيتم استردادها بالترتيب الموضح. Alias_1 ، Alias_2 هي الأسماء التي ستصبح عناوين الأعمدة بدلاً من أسماء الأعمدة الأصلية في الجدول. التعبير - أسماء واحد أو أكثر من الجداول التي تحتوي على البيانات المحددة قاعدة البيانات الخارجية - اسم قاعدة البيانات التي تحتوي على الجداول المحددة باستخدام وسيطة التعبير إذا لم تكن موجودة في قاعدة البيانات الحالية. حدد الموظف ، الاسم الكامل ، [الراتب] * 0.5 كمكافأة من الموظف ؛ حدد Avg (worker.report) AS Average_port FROM موظف ؛


المعالجة المشتركة للعديد من الجداول حدد الموظف.الاسم والموضوع. [اسم الموضوع قصير] من الموظف INNER JOIN (الموضوع INNER INNER [حيازة الموضوعات] في الموضوع. [رمز الموضوع] = [حيازة الموضوعات]. [رمز الانضباط]) تشغيل الموظف. كود = [حيازة العناصر]. [رمز الموظف] ؛




بين ... والتعبير 1 بين التعبير 2 والتعبير 3 (في Microsoft Access SQL ، يمكن أن يكون التعبير 2 أكبر من التعبير 3 ، ولكن ليس في ANSI SQL). حدد الموظف اسم الموظف ، تقرير الموظف من أين (((تقرير الموظف) بين 1000 و 2000)) ؛ الاستعلام: حدد الموظف اسم الموظف ، التقرير من الموظف حيث (((تقرير الموظف) بين 2000 و 1000)) ؛ لا يعطي خطأ ويعطي نفس الإجابة حدد الموظف اسم الموظف ، تقرير من الموظف أين (((تقرير الموظف) 15000)) ؛ حدد الموظف اسم الموظف ، تقرير الموظف من أين (((تقرير الموظف) ليس بين 1000 و 2000)) ؛


أحرف النقش يتم استخدام أحرف نقش مختلفة مع المسند Like. MS Access SQL ANSI SQL أحرف البدل حرف واحد؟ _ (شرطة سفلية) مجموعة أحرف *٪ حرف واحد في قائمة الأحرف [قائمة الأحرف] يفتقد حرف واحد غير موجود في قائمة الأحرف [! char_list] مفقود آخر ميزتين هما Access فقط. في Access 2000 ، يمكن لوضع ANSI SQL-92 استخدام أحرف البدل ANSI. لا يمكنك مزج الأحرف في استعلام واحد حدد الموظف. من الموظف WHERE (((اسم الموظف بالكامل) مثل "D *")) ؛


قائمة عبارة GROUP BY SELECT للحقول من الجدول حيث شرط التحديد حيث تجميع الحقول هي أسماء الحقول (حتى 10) التي تُستخدم لتجميع السجلات. يحدد ترتيب أسماء الحقول في وسيطة الحقول القابلة للتجميع مستوى التجميع لكل حقل من هذه الحقول. استخدم جملة WHERE لاستبعاد السجلات من التجميع ، وعبارة HAVING لتطبيق عامل تصفية على السجلات بعد التجميع. HAVING عند استخدام جملة GROUP BY ، يجب تضمين كافة الحقول في قائمة الحقول الخاصة بعبارة SELECT في جملة GROUP BY أو استخدامها كوسائط لوظيفة SQL التجميعية. الإدارات التي تضم أكثر من 5 موظفين: حدد الموظف [رمز القسم] ، العدد (الاسم الكامل للموظف) AS [Number_Employees] من الموظف GROUP BY الموظف [رمز القسم] HAVING (((العدد (اسم الموظف الكامل))> 5)) ؛ 5));">




طلب متداخل. المسند موجود. حدد الموظف ، العد (الموظف) كعدد_شهادة_العمل من الموظف حيث (((يوجد (حدد الموظف المميز من الموظف الداخلي انضم إلى الموظف = نسخ الموظف)) خطأ)) المجموعة حسب شركة الموظف ؛ خطأ)) GROUP BY شركة موظف ؛ "> False)) GROUP BY موظف شركة ؛"> False)) GROUP BY شركة موظف ؛ "title =" (! LANG: Subquery. Predicate Exists. SELECT موظف شركة ، عدد (موظف موظف) AS Number_Cattest_ Employee FROM Employee WHERE ((((SELECT DISTINCT Employee Company ، الموظف الموظف من الموظف INNER JOIN Copy ON الموظف = نسخ الموظف)) خطأ)) المجموعة حسب شركة الموظف ؛"> title="طلب متداخل. المسند موجود. حدد الموظف ، العد (الموظف) كعدد_شهادة_العمل من الموظف حيث (((يوجد (حدد الموظف المميز من الموظف الداخلي انضم إلى الموظف = نسخ الموظف)) خطأ)) المجموعة حسب شركة الموظف ؛"> !}








إنشاء استعلام فرعي باستخدام QBE Query Builder إذا كنت تستخدم استعلامًا فرعيًا لتحديد الشروط لحقل ما ، فأدخل عبارة SELECT في خلية في صف المعايير في عمود هذا الحقل. يجب وضع عبارة SELECT بين قوسين.








حذف السجلات. استعلام SQL (تم إنشاؤه) حذف DISTINCTROW student.FULLNAME من الطالب WHERE (((student.FULLNAME) = "Burlak GN")) ؛


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


حذف السجلات. استعلام استعلام SQL: حذف * من الطالب WHERE student.Full name = "Burlak GN" ؛ يعطي نتيجة مماثلة.



















35





41



تطبيق MS Access DBMS هو مساعد كامل لإنشاء وصيانة قواعد البيانات المضمنة في الجداول والمصفوفات. إذا كانت قاعدة البيانات كبيرة جدًا ، فمن الصعب العثور على القيم المطلوبة بسرعة.

هذا هو سبب امتلاك Access ميزة تسمى الاستعلامات. دعونا نفكر في ماهيتها ، وكيف تعمل ، وما هي ميزاتها.

بناء الاستعلامات في Microsoft Access

لفهم كيفية إنشاء استعلامات في Access ، تحتاج إلى معرفة أساسيات العمل مع DBMS.

هناك طريقتان لإكمال هذا الإجراء:

  • مُنشئ الاستعلام.
  • معالج الاستعلام.

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

طريقة سهلة للمبتدئين

يقوم الشخص المطلع ، ببضع نقرات بالماوس ، بتحديد تلك المكونات التي سيحتاجها المستخدم لتلبية الطلب ، ثم يقوم بسرعة بتشكيل السجل وفقًا للقيم الأساسية التي تم جمعها. إذا كان هذا هو التعارف الأول مع DBMS ، ولم يكن لدى المستخدم أي فكرة عن كيفية إنشاء استعلامات في Access ، فسيتم تحديد برنامج Wizard.

في هذا الوضع ، يمكنك التعرف على الأنواع التالية من الطلبات وفهمها:

  • بسيط.
  • تعبر.
  • السجلات بدون المرؤوسين.
  • إدخالات مكررة.

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

استعلام بسيط

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

عبر الاستعلام

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

سيظهر جدول على الشاشة يمكنك من خلاله تحديد ما يصل إلى ثلاثة أعمدة موجودة في الأصل.

يمكن استخدام أحد الحقول غير المحددة المتبقية كرؤوس لجدول الاستعلام. في المرحلة الثالثة من الإجراء (التقاطع) ، يتم تحديد قيمة أخرى مع تباين الوظيفة (المتوسط ​​، المجموع ، الأول ، الأخير).

توضح الصورة أنه تم إنشاء استعلام متقاطع ، وأنه تم تنفيذ الإجراءات اللازمة وفقًا للمعايير المحددة.

إدخالات مكررة

كما يوحي الاسم ، فإن الغرض الرئيسي من هذا الاستعلام هو تحديد جميع الصفوف نفسها في الجدول بواسطة المعلمات المحددة. تبدو هكذا:

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

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

السجلات بدون المرؤوسين

هذا هو النوع الأخير من الطلبات المتاح في وضع "رئيسي - إدخالات بدون عبيد".

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

هذا النوع مناسب فقط في الحالات التي يوجد فيها العديد من قواعد البيانات.

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

وظائف الاستعلام في MS Access

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

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

طلب عينة

هذا النوع من عمل قاعدة البيانات معقد لأنه يتطلب مشاركة جداول متعددة.

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

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

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

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

لإكمال العملية ، تحتاج إلى النقر فوق الزر "تنفيذ".

طلب مع المعلمات

هذا نوع آخر من الإجراءات المعقدة التي تتطلب مهارات معينة في قاعدة البيانات من المستخدم. أحد المجالات الرئيسية لهذا الإجراء هو التحضير لإنشاء تقارير ببيانات حجمية ، وكذلك الحصول على نتائج موجزة. ستتم مناقشة كيفية إنشاء استعلامات في Access 2007 باستخدام المصمم أدناه.

لبدء هذا الإجراء الخاص بتحديد البيانات ، تحتاج إلى إنشاء استعلام بسيط لتحديد الحقول المطلوبة. علاوة على ذلك ، من خلال وضع المُنشئ ، من الضروري ملء حقل "شرط التحديد" ، وبناءً على القيمة المُدخلة ، سيتم تنفيذ التحديد.

وبالتالي ، فإن الإجابة على السؤال حول كيفية إنشاء استعلام باستخدام معلمة في Access بسيطة - لإدخال المعلمات الأولية للتحديد. للعمل مع المُنشئ ، يجب استخدام معالج الاستعلام. هناك ، يتم إنشاء البيانات الأولية للتصفية ، والتي تعمل كأساس لمزيد من العمل.

استعلام إسنادي متقدم

نواصل تعقيد الأمور. من الصعب فهم المعلومات المتعلقة بكيفية إنشاء استعلامات في Access عند وجود جداول بيانات متعددة. تم بالفعل النظر في استعلام الإسناد الترافقي أعلاه ، كأحد خيارات العمل مع المعالج. ومع ذلك ، في وضع "التصميم" ، يمكنك إنشاء استعلام مماثل.

للقيام بذلك ، تحتاج إلى النقر فوق "Query Builder" - "Cross".

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

تعد الاستعلامات المتقاطعة أسهل طريقة للعثور على المعلومات واستردادها من مصادر بيانات متعددة ، بالإضافة إلى القدرة على إنشاء مخططات ورسوم بيانية.

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

بالطبع ، هناك أيضًا "مطبات" يمكن أن تتداخل مع العمل. على سبيل المثال ، عند إنشاء استعلام لفرز قاعدة بيانات حسب قيمة العمود ، يقوم النظام بإلقاء خطأ. أي أن الفرز حسب العناصر القياسية هو المتاح فقط - "زيادة وتناقص".

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

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

هناك نقطة واحدة متاحة فقط للمبرمجين. نظرًا لأن لغة DBMS الرئيسية هي SQL ، يمكن كتابة الاستعلام المطلوب في شكل رمز البرنامج. للعمل في هذا الوضع ، يكفي النقر فوق سطر الاستعلام الذي تم إنشاؤه بالفعل ، وفي قائمة السياق المفتوحة حدد "وضع SQL".

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

تصميم طلبات الاختيار بشروط الاختيار

لنلقِ نظرة على الاستعلامات الخاصة بالتحديد في Access باستخدام مثال استرداد المعلومات من جدول المنتج في قاعدة بيانات تسليم البضائع.

المشكلة 1... فليكن من الضروري تحديد عدد من خصائص المنتج باسمه.

  1. لإنشاء استعلام في نافذة قاعدة البيانات ، حدد علامة تبويب الشريط - خلق(إنشاء) وفي المجموعة استفسارات(استعلامات) اضغط على الزر مُنشئ الاستعلام(تصميم الاستعلام). سيتم فتح نافذة استعلام تحديد فارغة في وضع التصميم - طلب(QueryN) ومربع الحوار إضافة جدول(عرض الجدول) (الشكل 4.2).
  2. فى الشباك إضافة جدول(إظهار الجدول) حدد جدول المنتج وانقر فوق الزر يضيف(يضيف). سيتم عرض الجدول المحدد في منطقة مخطط البيانات الخاصة بالاستعلام. أغلق النافذة إضافة جدول(إظهار الجدول) عن طريق النقر فوق الزر قريب(قريب).

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

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

  1. لإزالة أي جدول من مخطط بيانات الاستعلام ، حرك مؤشر الماوس فوقه واضغط على المفتاح. للإضافة - انقر فوق الزر عرض الجدول(عرض الجدول) في المجموعة إعداد طلبعلامة التبويب (إعداد الاستعلام) العمل مع الاستعلامات | البناء(أدوات الاستعلام | التصميم) أو قم بتشغيل الأمر أضف الجدولتم استدعاء (إظهار الجدول) في قائمة السياق في مخطط بيانات الاستعلام.
  2. في نافذة التصميم (الشكل 4.4) ، اسحب بالتتابع من قائمة الحقول في جدول PRODUCT الحقول NAME_ITS و PRICE و AVAILABILITY_of_of_s إلى أعمدة نموذج الطلب إلى الصف حقل(حقل).
  3. لتضمين الحقول المطلوبة من الجدول في الأعمدة المقابلة للاستعلام ، يمكنك استخدام الأساليب التالية:
    • في السطر الأول من نموذج الطلب حقل(حقل) بالنقر بالماوس ، يتسبب في ظهور زر القائمة وتحديد الحقل المطلوب من القائمة. تحتوي القائمة على حقول الجداول الممثلة في مخطط بيانات الاستعلام ؛
    • انقر نقرًا مزدوجًا فوق اسم حقل الجدول في مخطط بيانات الاستعلام ؛
    • يمكنك سحب أو النقر نقرًا مزدوجًا فوق الرمز * (علامة النجمة) في قائمة حقول الجدول في مخطط بيانات الاستعلام لتضمين جميع حقول الجدول.
  4. إذا أسقطت عن طريق الخطأ حقلاً غير ضروري في نموذج الطلب ، فاحذفه. للقيام بذلك ، انقل المؤشر إلى منطقة تعليم العمود في الأعلى ، حيث سيأخذ شكل سهم أسود يشير لأسفل ، وانقر. تم تمييز العمود. اضغط على المفتاح أو قم بتشغيل الأمر حذف الأعمدة(حذف الأعمدة) في المجموعة إعداد طلب(إعداد الاستعلام).
  5. في النسق الإخراج على الشاشة(إظهار) ضع علامة على الحقول ، وإلا فلن يتم تضمينها في جدول الاستعلام.
  6. اكتب في السطر شروط الاختيار(المعايير) اسم المنتج ، كما هو موضح في نموذج الطلب في الشكل. 4.4 نظرًا لأن التعبير في جملة التحديد لا يحتوي على عامل ، يتم استخدام عامل التشغيل الافتراضي =. يتم إدخال قيمة النص المستخدمة في التعبير بين علامتي اقتباس ، والتي تتم إضافتها تلقائيًا.
  7. قم بتشغيل الاستعلام بالنقر فوق الزر تشغيل أو الزر عرض في مجموعة النتائج. ستظهر نافذة استعلام على الشاشة في وضع الجدول مع إدخال من جدول المنتج الذي يلبي شروط التحديد المحددة.

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

  1. إذا أخطأت في الدقة عند إدخال اسم منتج معقد ، فلن يتم العثور على المنتج في الجدول. باستخدام عوامل تشغيل أحرف البدل - العلامة النجمية (*) وعلامة الاستفهام (؟) (معيار ANSI-89 المستخدم للاستعلامات بشكل افتراضي) أو علامة النسبة المئوية (٪) والشرطة السفلية (_) (المعيار المستحسن ANSI-92 لـ SQL Server) ، يجعل الأمر أسهل للعثور على السلاسل المطلوبة وتجنب العديد من الأخطاء. أدخل Corpus * أو Corpus٪ بدلاً من الاسم الكامل للمنتج. أكمل طلبك. إذا كانت إحدى القيم في حقل اسم المنتج تبدأ بالكلمة "Corpus" ، فستكون نتيجة الاستعلام هي نفسها كما في الحالة السابقة. بعد تنفيذ الاستعلام ، سيتم استكمال التعبير الذي تم إدخاله بالمعامل Like "Corpus *". يتيح لك عامل التشغيل هذا استخدام أحرف البدل عند البحث في الحقول النصية.
  2. إذا كنت بحاجة إلى البحث عن منتجات متعددة ، فاستخدم عامل التشغيل In. يسمح لك بالتحقق من المساواة مع أي قيمة من القائمة المحددة بين قوسين. اكتب في سطر شروط الاختيار في ("حقيبة MiniTower" ؛ "HDD Maxtor 20GB" ؛ "FDD 3،5"). سيتم عرض ثلاثة صفوف في جدول الاستعلام. غير مسموح باستخدام أحرف البدل في العبارة In.
  3. احفظ الاستعلام بالنقر فوق علامة التبويب ملف(ملف) وتشغيل الأمر يحفظ(يحفظ). فى الشباك الحفظ(حفظ باسم) أدخل اسم الاستعلام مثال 1. لاحظ أن اسم الاستعلام يجب ألا يتطابق ليس فقط مع أسماء الاستعلامات الموجودة ، ولكن أيضًا مع أسماء الجداول في قاعدة البيانات.
  4. أغلق الاستعلام الحالي باستخدام أمر قائمة السياق قريب(إغلاق) أو عن طريق النقر فوق زر نافذة الاستعلام قريب(قريب).
  5. قم بتشغيل الاستعلام المحفوظ عن طريق تحديد الاستعلام في جزء التنقل والاختيار افتح(افتح).
  6. لتحرير استعلام ، حدده في جزء التنقل وقم بتنفيذ الأمر في قائمة السياق البناء(عرض تصميم).

الهدف 2.فليكن من الضروري اختيار البضائع التي لا يزيد سعرها عن 1000 روبل ، ولا تزيد ضريبة القيمة المضافة عن 10٪ ، وكذلك اختيار البضائع التي يزيد سعرها عن 2500 روبل. يجب أن تحتوي النتيجة على اسم المنتج (NAME_TOV) وسعره (PRICE) وضريبة القيمة المضافة (VAT_VAT).

  1. قم بإنشاء استعلام جديد في وضع التصميم ، أضف الجدول PRODUCT. في نافذة التصميم (الشكل 4.5) ، اسحب بالتتابع من قائمة الحقول في جدول PRODUCT إلى نموذج الطلب ، الحقول NAIM_TOV ، PRICE ، RATE_VAT.
  2. أكتب شروط الاختيار(المعايير) كما هو موضح في نموذج الطلب في الشكل. 4.5 يتم تنفيذ عملية AND المنطقية بين الشروط المكتوبة في سطر واحد. يتم تنفيذ عملية OR منطقية بين الشروط المكتوبة في سطور مختلفة.
  3. نفِّذ طلبك ، انقر فوق الزر ينفذ(تشغيل) في مجموعة النتائج(نتائج). ستظهر نافذة استعلام على الشاشة في وضع الجدول مع السجلات من جدول المنتج التي تفي بشروط الاختيار المحددة.
  4. احفظ الطلب عن طريق تشغيل الأمر المناسب في قائمة سياق الطلب ، والتي يتم استدعاؤها عند وضع المؤشر فوق رأس الطلب. أعطه إسما مثال 2.

مشكلة 3... افترض أنك بحاجة إلى تحديد جميع الفواتير لفترة معينة. يجب أن تحتوي النتيجة على رقم الفاتورة (NOM_NAK) ، ورمز المستودع (CODE_SK) ، وتاريخ الشحن (DATE_SHIPPED) والقيمة الإجمالية للبضائع المشحونة (SUM_NUMBER).

  1. قم بإنشاء استعلام جديد في وضع التصميم ، وأضف جدول OVERLAY. في نافذة التصميم ، قم بسحب وإفلات جميع الحقول المطلوبة بالتسلسل من قائمة الحقول في جدول OVERLAY في نموذج الاستعلام.
  2. لحقل DATE_DATE في السطر شروط الاختيار(المعايير) اكتب بين # 01/11/2008 # و # 03/31/2008 #. يحدد عامل التشغيل Between نطاقًا زمنيًا (يستخدم ANSI-92 علامات الاقتباس المفردة بدلاً من #). بالإضافة إلى ذلك ، يسمح لك هذا العامل بتحديد فترة زمنية لقيمة رقمية.

للدمج ، شاهد الفيديو التعليمي:

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

خطوات


ماذا تحتاج

  • يجب أن يكون لدى المستخدم حق الوصول إلى قاعدة بيانات المؤسسة
  • يمكن للمستخدم الاتصال بالدعم التكنولوجي قبل بدء الاستفسارات من خلال MS Access

معلومات المادة

تمت مشاهدة هذه الصفحة 4،443 مرة.

هل كان هذا مفيدا؟

الوصول إلى نظم إدارة قواعد البيانات

Microsoft Access هو نظام DBMS علاقي يوازن بشكل معقول بين جميع الأدوات والقدرات النموذجية لأنظمة إدارة قواعد البيانات الحديثة. تسهل قاعدة البيانات الارتباطية العثور على بياناتك وتحليلها وصيانتها وحمايتها لأنها مخزنة في مكان واحد. الوصول المترجم من اللغة الإنجليزية يعني "الوصول". يعد MS Access أحد أقوى أنظمة إدارة قواعد البيانات وأكثرها مرونة وسهولة في الاستخدام. في ذلك ، يمكنك إنشاء معظم التطبيقات دون كتابة سطر واحد من البرنامج ، ولكن إذا كنت بحاجة إلى إنشاء شيء معقد للغاية ، فإن MS Access يوفر لغة برمجة قوية لهذه الحالة - تطبيق Visual Basic.

تعود شعبية Microsoft Access DBMS إلى الأسباب التالية:

من السهل التعلم والفهم ، يعد Access أحد أفضل الأنظمة لإنشاء تطبيقات إدارة قواعد البيانات بسرعة ؛

القدرة على استخدام تقنية OLE ؛

التكامل مع حزمة مايكروسوفت أوفيس ؛

الدعم الكامل لتقنيات الويب ؛

تتيح لك التكنولوجيا المرئية رؤية نتائج أفعالك باستمرار وتصحيحها ؛

وجود مجموعة كبيرة من "المعالجات" لتطوير الأشياء.

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

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

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

الاستعلام هو كائن يسمح للمستخدم باسترداد البيانات المطلوبة من جدول واحد أو أكثر. يمكنك أيضًا استخدام الاستعلامات لإنشاء جداول جديدة باستخدام بيانات من جدول واحد أو أكثر موجود بالفعل. أكثر أنواع الاستعلام شيوعًا هو استعلام التحديد. يحدد استعلام التحديد البيانات من جدول واحد أو أكثر وفقًا للشروط المحددة ، ثم يعرضها بالترتيب المطلوب.

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

التقرير عبارة عن كائن مصمم لإنشاء مستند يمكن طباعته لاحقًا أو تضمينه في مستند لتطبيق آخر.

قاعدة برمجة التطوير المرئي

الصفحة - تُستخدم للوصول إلى بيانات قاعدة بيانات Access الحالية.

الماكرو هو كائن يمثل وصفًا منظمًا لواحد أو أكثر من الإجراءات التي يجب أن يتخذها Access استجابةً لحدث معين.

الوحدة النمطية هي كائن يحتوي على برامج في Microsoft Visual Basic تسمح لك بتقسيم العملية إلى خطوات أصغر واكتشاف الأخطاء التي لا يمكن العثور عليها باستخدام وحدات الماكرو.

يتم تشغيل DBMS بواسطة Start - Programs - Microsoft Access. قم بتشغيل ملف الأمر - جديد.

واجهة العمل مع كائنات قاعدة البيانات موحدة. لكل منها ، يتم توفير أوضاع التشغيل القياسية: إنشاء (إنشاء هيكل من الكائنات) ؛ منشئ (تغيير هيكل الأشياء) ؛ افتح (عرض ، تشغيل - مصمم للعمل مع كائنات قاعدة البيانات).

لغة استعلام SQL

SQL (لغة الاستعلام الهيكلية) منذ عام 1986 هي اللغة القياسية لقواعد البيانات العلائقية. على وجه الخصوص ، يتم استخدامه في تطبيقات Access و Excel.

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

لغة SQL عبارة عن مجموعة من العوامل:

عبارات لغة تعريف البيانات (DDL)

مشغلي لغة معالجة البيانات (DML)

مشغلي لغة التحكم في البيانات (DCL) ؛

عبارات لغة التحكم في المعاملات (TCL).

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

SQL هي لغة غير إجرائية. إنه يعلن ببساطة ما يجب القيام به ، ويتم تعيين التنفيذ إلى DBMS (نظام إدارة قاعدة البيانات).

يستخدم SQL منطق ثلاثي القيم. يتم استخدام NULL (غير معروف أو بدون بيانات) جنبًا إلى جنب مع القيم المنطقية التقليدية TRUE و FALSE.

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

يتكون استعلام SQL من عبارات. يمكن أن تحتوي كل تعليمات على عدة جمل.

يمكن أن يتداخل استعلام SQL مع آخر. الاستعلام الفرعي ليس أكثر من استعلام داخل استعلام. عادةً ما يتم استخدام استعلام فرعي في جملة WHERE. ولكن هناك طرق أخرى لاستخدام الاستعلامات الفرعية أيضًا.

طلب Q011.يتم عرض معلومات حول المنتجات من جدول m_product ، ورموزها موجودة أيضًا في جدول m_income:

تحديد *
من m_product
أين المعرف في (حدد product_id من m_income) ،

طلب Q012.يتم عرض قائمة المنتجات من جدول m_product ، وأكوادها غير موجودة في جدول m_outcome:

تحديد *
من m_product
أين المعرّف ليس في (حدد product_id من m_outcome) ؛

طلب Q013.يعرض استعلام SQL هذا قائمة فريدة من رموز المنتجات والأسماء التي تحتوي على أكواد في جدول m_income ولكن ليس في جدول m_outcome:

حدد DISTINCT product_id ، العنوان
من m_income INNER JOIN m_product
تشغيل m_income.product_id = m_product.id
حيث لم يكن product_id موجودًا (حدد product_id من m_outcome) ؛

طلب Q014.يتم عرض قائمة فريدة من الفئات من الجدول m_category ، وتبدأ أسماؤها بالحرف M:

حدد العنوان المميز
من m_product
حيث يكون العنوان مثل "М *" ؛

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

السعر والمبلغ * السعر AS result_sum ،
المبلغ * السعر / 100 * 7 ربح
من m_outcome ؛

طلب Q016.من خلال تحليل العمليات الحسابية وتبسيطها ، يمكنك زيادة سرعة تنفيذ الاستعلام:


result_sum * 0.07 AS ربح
من m_outcome ؛

طلب Q017.باستخدام جملة INNER JOIN ، يمكنك ضم البيانات من جداول متعددة. في المثال التالي ، بناءً على قيمة ctgry_id ، يتم مطابقة كل سجل في جدول m_income مع اسم الفئة من جدول m_category الذي ينتمي إليه المنتج:

حدد العنوان ، والعنوان ، والدينار ، والمبلغ ، والسعر ، والمبلغ * السعر كإجمالي الدخل
من (m_income AS a INNER JOIN m_product AS b ON a.product_id = b.id)
INNER JOIN m_category AS c ON b.ctgry_id = c.id
ترتيب حسب العنوان ، ب ، العنوان ؛

طلب Q018.وظائف مثل SUM - sum ، COUNT - quantity ، AVG - الوسط الحسابي ، MAX - القيمة القصوى ، MIN - القيمة الدنيا تسمى الدالات التجميعية. تأخذ قيمًا متعددة ، وبعد معالجتها ، تُرجع قيمة واحدة. مثال على حساب مجموع منتج حقلي المبلغ والسعر باستخدام دالة التجميع SUM:

حدد المجموع (المبلغ * السعر) على أنه المجموع_المجموع
من الدخل

طلب Q019.مثال على استخدام وظائف تجميعية متعددة:


حدد المجموع (المبلغ) AS Amount_Sum ، AVG (المبلغ) AS Amount_AVG ،
MAX (المبلغ) AS Amount_Max، Min (amount) AS Amount_Min،
Count (*) AS Total_Number
من الدخل

طلب Q020.يحسب هذا المثال مجموع كل العناصر ذات الرمز 1 المكتوب بحروف كبيرة في حزيران (يونيو) 2011:

تحديد
من الدخل
حيث product_id = 1 و dt بين # 6/1/2011 # AND # 6/30/2011 # ؛.

طلب Q021.يحسب استعلام SQL التالي كمية المنتجات المباعة برمز 4 أو 6:

تحديد
من m_outcome
حيث product_id = 4 أو product_id = 6 ؛

طلب Q022.يتم احتساب المبلغ الذي تم بيعه في 12 يونيو 2011 للسلع ذات الرمز 4 أو 6:

حدد المجموع (المبلغ * السعر) AS result_sum
من m_outcome
أين (معرّف_المنتج = 4 أو معرّف_المنتج = 6) و دت = # 6/12/2011 # ؛

طلب Q023.المهمة هي على النحو التالي. احسب المبلغ الإجمالي للسلع في فئة "المخبز" التي تمت رسملتها.

لحل هذه المشكلة ، تحتاج إلى العمل بثلاثة جداول: m_income و m_product و m_category ، للأسباب التالية:
- يتم تخزين كمية وسعر السلع المرسملة في جدول الدخل ؛
- يتم تخزين رمز الفئة لكل منتج في جدول m_product ؛
- يتم تخزين اسم عنوان الفئة في جدول m_category.

لحل هذه المشكلة سنستخدم الخوارزمية التالية:
- تحديد رمز الفئة "منتجات المخابز" من جدول m_category باستخدام استعلام فرعي ؛
- ربط الجداول m_income و m_product لتحديد فئة كل منتج مرسم ؛
- حساب مبلغ الإيصال (= الكمية * السعر) للسلع ، حيث يكون رمز الفئة الخاص بها مساويًا للرمز المحدد بواسطة الاستعلام الفرعي أعلاه.


من m_product باعتباره INNER JOIN m_income AS b ON a.id = b.product_id
حيث ctgry_id = (حدد المعرف من m_category حيث العنوان = "(! LANG: المخبز"); !}

طلب Q024.سنحل مشكلة حساب المبلغ الإجمالي للسلع المرسملة في فئة "منتجات المخابز" باستخدام الخوارزمية التالية:
- لكل سجل في جدول m_income ، اعتمادًا على قيمة product_id الخاص به ، من جدول m_category ، تطابق اسم الفئة ؛
- حدد السجلات التي تكون الفئة لها مساوية لـ "منتجات المخبوزات" ؛
- احسب مبلغ الإيصال = الكمية * السعر.

حدد المجموع (المبلغ * السعر) كإجمالي الدخل
من (m_product AS a INNER JOIN m_income AS b ON a.id = b.product_id)
أين c.title = "(! LANG: المخبز"; !}

طلب Q025.يحسب هذا المثال عدد العناصر التي تم استهلاكها:

حدد COUNT (product_id) AS product_cnt
من (حدد DISTINCT product_id من m_outcome) AS t ؛

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

حدد العنوان ، SUM (المبلغ * السعر) AS result_sum
من m_product باعتباره INNER JOIN m_outcome AS ب
تشغيل معرف = b.product_id
GROUP BY العنوان ؛

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

حدد العنوان ، SUM (المبلغ * السعر) AS result_sum ،
ROUND (AVG (المبلغ * السعر) ، 2) AS result_sum_avg
من (m_product AS a INNER JOIN m_outcome AS b ON a.id = b.product_id)
INNER انضم إلى m_category AS c ON a.ctgry_id = c.id
تجميع حسب العنوان ؛

طلب Q028.لكل منتج ، يتم حساب إجمالي ومتوسط ​​عدد الإيصالات الخاصة به ويعرض معلومات حول البضائع ، ولا يقل إجمالي عدد الإيصالات عن 500:

حدد product_id ، SUM (المبلغ) AS amount_sum ،
Round (Avg (amount)، 2) AS amount_avg
من الدخل
GROUP BY product_id
الحصول على مجموع (المبلغ)> = 500 ؛

طلب Q029.يحسب هذا الاستعلام لكل عنصر مجموع ومتوسط ​​إيصالاته في الربع الثاني من عام 2011. إذا كان المبلغ الإجمالي للبضائع المستلمة لا يقل عن 1000 ، فسيتم عرض معلومات حول هذا المنتج:

حدد العنوان ، SUM (المبلغ * السعر) AS payment_sum
من m_income a INNER JOIN m_product b على a.product_id = b.id
حيث dt بين # 4/1/2011 # و # 6/30/2011 #
GROUP BY العنوان
الحصول على المبلغ (المبلغ * السعر)> = 1000 ؛

طلب Q030.في بعض الحالات ، تحتاج إلى تعيين كل سجل لجدول معين لكل سجل في جدول آخر ؛ ما يسمى بالمنتج الديكارتي. الجدول الناتج عن مثل هذا الاتصال يسمى جدول ديكارت. على سبيل المثال ، إذا كان بعض الجدول أ يحتوي على 100 سجل والجدول ب يحتوي على 15 سجلًا ، فإن جدول ديكارت سيتكون من 100 * 15 = 150 سجلًا. ينضم الاستعلام التالي إلى كل سجل في جدول m_income مع كل سجل في جدول m_outcome:

حدد * من m_income ، m_outcome ؛

طلب Q031.مثال على تجميع السجلات حسب حقلين. يحسب استعلام SQL التالي كمية وكمية البضائع المستلمة من كل مورد لكل مورد:


SUM (المبلغ * السعر) AS payment_sum

طلب Q032.مثال على تجميع السجلات حسب حقلين. يقوم الاستعلام التالي بحساب كمية وكمية منتجاتهم المباعة من قبلنا لكل مورد:

حدد معرف المورد ، معرّف_المنتج ، SUM (المبلغ) AS amount_sum ،
SUM (المبلغ * السعر) AS result_sum
GROUP BY supplier_id، product_id؛

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

تحديد *
من عند
SUM (المبلغ * السعر) AS payment_sum
ON a.product_id = b.id GROUP BY Provider_id، product_id) AS a
الانضمام إلى اليسار
(حدد معرّف_المورد ، معرّف_المنتج ، SUM (المبلغ) AS amount_sum ،
SUM (المبلغ * السعر) AS result_sum
من m_outcome AS a INNER JOIN m_product AS ب
ON a.product_id = b.id GROUP BY supplier_id، product_id) AS b
تشغيل (a.product_id = b.product_id) AND (a.supplier_id = b.supplier_id) ؛

طلب Q034.في هذا المثال ، يتم استخدام الاستعلامين أعلاه (q031 و q032) كاستعلامات فرعية. يتم دمج نتائج هذه الاستعلامات باستخدام طريقة RIGTH JOIN في تقرير واحد. يعرض الاستعلام التالي تقريرًا عن مقدار المدفوعات من قبل كل عميل لأنظمة الدفع التي يستخدمها ومقدار استثماراتهم. يوضح الاستعلام التالي كمية وكمية المنتجات المستلمة والمباعة لكل مورد. وتجدر الإشارة إلى أنه إذا تم بيع بعض المنتجات بالفعل ، ولكن لم يتم وصولها بعد ، فستكون خلية مجموع الدخل لهذا السجل فارغة. يعد وجود هذه الخلايا الفارغة مؤشرًا على وجود خطأ في محاسبة المبيعات ، لأنه قبل البيع ، من الضروري أولاً وصول المنتج المقابل:

تحديد *
من عند
(حدد معرّف_المورد ، معرّف_المنتج ، SUM (المبلغ) AS amount_sum ،
SUM (المبلغ * السعر) AS payment_sum
من m_income باعتباره منتجًا داخليًا انضم إلى m_product AS b في a.product_id = b.id
GROUP BY supplier_id، product_id) AS أ
الحق في الانضمام
(حدد معرّف_المورد ، معرّف_المنتج ، SUM (المبلغ) AS amount_sum ،
SUM (المبلغ * السعر) AS result_sum
من m_outcome AS a INNER JOIN m_product AS b في a.product_id = b.id
GROUP BY supplier_id، product_id) AS ب
تشغيل (a.supplier_id = b.supplier_id) AND (a.product_id = b.product_id) ؛

طلب Q035.يعرض تقريرًا عن مقدار الدخل والمصروفات حسب المنتج. للقيام بذلك ، يتم إنشاء قائمة بالمنتجات وفقًا لجدول m_income و m_outcome ، ثم لكل منتج من هذه القائمة ، يتم حساب مجموع إيصالاته وفقًا لجدول m_income ومجموع مصروفاته وفقًا لجدول m_outcome:

حدد product_id ، SUM (in_amount) كدخل_قيمة ،
SUM (out_amount) AS result_amount
من عند
(حدد product_id ، المبلغ AS in_amount ، 0 AS out_amount
من الدخل
اتحاد الكل
حدد product_id ، 0 AS in_amount ، والمبلغ AS out_amount
من m_outcome) AS t
GROUP BY product_id ؛

طلب Q036.تقوم EXISTS بإرجاع TRUE إذا كانت المجموعة التي تم تمريرها إليها تحتوي على عناصر. ترجع الدالة EXISTS القيمة FALSE إذا كانت المجموعة التي تم تمريرها إليها فارغة ، أي أنها لا تحتوي على عناصر. يعرض الاستعلام التالي رموز المنتجات المضمنة في جدولي m_income و m_outcome:

حدد DISTINCT product_id
من m_income AS أ
أين تكمن (حدد product_id من m_outcome AS ب

طلب Q037.يتم عرض رموز المنتج ، والتي يتم تضمينها في كل من جدول الدخل والجدول m_outcome:

حدد DISTINCT product_id
من m_income AS أ
أين product_id في (حدد product_id من m_outcome)

طلب Q038.يتم عرض رموز المنتج ، والتي يتم تضمينها كما في جدول m_income ، ولكنها غير واردة في جدول m_outcome:

حدد DISTINCT product_id
من m_income AS أ
حيث لا يتم EXISTS (حدد product_id من m_outcome AS ب
أين b.product_id = a.product_id) ؛

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

حدد product_id ، SUM (المبلغ * السعر) AS amount_sum
من m_outcome
GROUP BY product_id
الحصول على المبلغ (المبلغ * السعر) = (حدد MAX (s_amount)
من (حدد المبلغ (المبلغ * السعر) كما s_amount من m_outcome GROUP BY product_id)) ؛

طلب Q040.يتم استخدام الكلمة المحجوزة IIF (عامل تشغيل شرطي) لتقييم تعبير منطقي وتنفيذ إجراء بناءً على النتيجة (صواب أو خطأ). في المثال التالي ، يعتبر تسليم أحد العناصر "صغيرًا" إذا كانت الكمية أقل من 500. وبخلاف ذلك ، فإن كمية الإيصال أكبر من أو تساوي 500 ، يعتبر التسليم "كبيرًا":

حدد dt ، product_id ، المبلغ ،
IIF (المبلغ<500,"малая","большая") AS mark
من الدخل

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

حدد dt ، product_id ، المبلغ ،
التبديل (المبلغ<500,"малая",amount>= 500، "كبير") علامة AS
من الدخل

طلب Q042. <300 не выполняется, то проверяется является ли количество товаров в партии меньше 500. Если размер партии меньше 500, то она считается «средней». В противном случае партия считается «большой»:

حدد dt ، product_id ، المبلغ ،
IIF (المبلغ<300,"малая",
IIF (المبلغ<1000,"средняя","большая")) AS mark
من الدخل

استعلام SQL Q043.في الطلب التالي ، إذا كانت كمية البضائع في الدُفعة المستلمة أقل من 300 ، فإن الدُفعة تعتبر "صغيرة". خلاف ذلك ، هذا إذا كان شرط المبلغ<300 не выполняется, то проверяется является ли количество товаров в партии меньше 500. Если размер партии меньше 500, то она считается «средней». В противном случае партия считается «большой»:

حدد dt ، product_id ، المبلغ ،
التبديل (المبلغ<300,"малая",
كمية<1000,"средняя",
المبلغ> = 1000، "كبير") علامة AS
من الدخل

استعلام SQL Q044.في الاستعلام التالي ، يتم تقسيم المبيعات إلى ثلاث مجموعات: صغيرة (حتى 150) ، ومتوسطة (من 150 إلى 300) ، وكبيرة (300 أو أكثر). بعد ذلك ، يتم حساب المجموع لكل مجموعة:

حدد الفئة ، SUM (result_sum) AS Ctgry_Total
من (حدد المبلغ * السعر AS result_sum ،
IIf (المبلغ * السعر<150,"малая",
IIf (المبلغ * السعر<300,"средняя","большая")) AS Category
من m_outcome) AS t
GROUP BY الفئة؛

استعلام SQL Q045.تُستخدم الدالة DateAdd لإضافة أيام أو شهور أو سنوات إلى تاريخ معين والحصول على تاريخ جديد. الاستعلام التالي:
1) يضيف 30 يومًا إلى التاريخ من الحقل dt ويعرض التاريخ الجديد في الحقل dt_plus_30d ؛
2) يضيف شهرًا واحدًا إلى التاريخ من الحقل dt ويعرض التاريخ الجديد في الحقل dt_plus_1m:

حدد dt، dateadd ("d"، 30، dt) AS dt_plus_30d، dateadd ("m"، 1، dt) AS dt_plus_1m
من الدخل

استعلام SQL Q046.تحسب الدالة DateDiff الفرق بين تاريخين في وحدات مختلفة (أيام أو شهور أو سنوات). يحسب الاستعلام التالي الفرق بين التاريخ الموجود في الحقل dt والتاريخ الحالي بالأيام والشهور والسنوات:

حدد dt، DateDiff ("d"، dt، Date ()) AS last_day،
DateDiff ("m"، dt، Date ()) AS last_months،
DateDiff ("yyyy"، dt، Date ()) AS last_years
من الدخل

استعلام SQL Q047.يتم حساب عدد الأيام من تاريخ استلام البضائع (الجدول m_income) إلى التاريخ الحالي باستخدام وظيفة DateDiff ويتم مقارنة تاريخ انتهاء الصلاحية (الجدول m_product):


DateDiff ("d"، dt، Date ()) AS last_days
من m_income كمنتج داخلي انضم إلى m_product AS ب
ON a.product_id = b.id ؛

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

حدد a.id و product_id و dt و lifedays و
DateDiff ("d"، dt، Date ()) AS last_days، IIf (last_days> lifedays، "Yes"، "No") AS date_expire
من m_income a INNER JOIN m_product ب
ON a.product_id = b.id ؛

استعلام SQL Q049.يتم حساب عدد الأشهر من تاريخ استلام البضائع إلى التاريخ الحالي. يحسب العمود month_last1 العدد المطلق للأشهر ، ويحسب العمود month_last2 عدد الأشهر الكاملة:

حدد dt، DateDiff ("m"، dt، Date ()) AS month_last1،
DateDiff ("m"، dt، Date ()) - iif (يوم (dt)> يوم (تاريخ ())، 1،0) AS month_last2
من الدخل

استعلام SQL Q050.يتم عرض تقرير ربع سنوي عن كمية وكمية السلع المرسملة لعام 2011:

حدد kvartal ، SUM (result_sum) كإجمالي
من (حدد المبلغ * السعر AS result_sum ، شهر (دينار) AS م ،
التبديل (م<4,1,m<7,2,m<10,3,m>= 10.4) أس كفارتال
من m_income حيث السنة (dt) = 2011) AS t
تجميع بواسطة kvartal ؛

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

حدد product_id ، SUM (in_sum) AS payment_sum ، SUM (out_sum) AS result_sum
من (حدد معرّف المنتج ، المبلغ * السعر مثل in_sum ، 0 مثل out_sum
من m_income
اتحاد الكل
حدد product_id ، 0 كـ in_sum ، والمبلغ * السعر كـ out_sum
من m_outcome) AS t
GROUP BY product_id
الحصول على مجموع (in_sum)

طلب Q052.يتم تنفيذ ترقيم الأسطر التي يتم إرجاعها بواسطة استعلام بطرق مختلفة. على سبيل المثال ، يمكنك إعادة ترقيم سطور تقرير تم إعداده في MS Access باستخدام MS Access نفسه. يمكنك أيضًا إعادة الترقيم باستخدام لغات البرمجة مثل VBA أو PHP. ومع ذلك ، في بعض الأحيان يجب القيام بذلك في استعلام SQL نفسه. لذلك ، سيقوم الاستعلام التالي بترقيم صفوف جدول m_income وفقًا للترتيب التصاعدي لقيم حقل المعرف:

حدد العدد (*) كـ N ، b.id ، b.product_id ، b.amount ، b.price
من m_income a INNER JOIN m_income b on a.id<= b.id
GROUP BY b.id، b.product_id، b.amount، b. price؛

طلب Q053.يتم عرض الخمسة الأوائل من بين المنتجات حسب حجم المبيعات. يتم عرض السجلات الخمسة الأولى باستخدام بيان TOP:

حدد TOP 5 ، product_id ، المجموع (المبلغ * السعر) AS ملخص
من m_outcome
GROUP BY product_id
ترتيب حسب المبلغ (المبلغ * السعر) تنازليًا ؛

طلب Q054.يتم عرض الخمسة قادة من بين المنتجات حسب حجم المبيعات ، ويتم ترقيم الأسطر نتيجة لذلك:

حدد العدد (*) AS N ، b.product_id ، b.summa
من عند

من m_outcome GROUP BY product_id) AS أ
صلة داخلية
(حدد product_id ، المجموع (المبلغ * السعر) AS ملخص ،
ملخص * 10000000 + product_id AS معرف
من m_outcome GROUP BY product_id) AS ب
ON a.id> = b.id
المجموعة حسب b.product_id، b.summa
عدد (*)<=5
ORDER BY COUNT (*) ؛

طلب Q055.يُظهر استعلام SQL التالي استخدام الدالات الرياضية COS و SIN و TAN و SQRT و ^ و ABS في MS Access SQL:

حدد (حدد العدد (*) من m_income) كـ N ، 3.1415926 كـ pi ، k ،
2 * pi * (k-1) / N مثل x ، COS (x) مثل COS_ ، SIN (x) مثل SIN_ ، TAN (x) مثل TAN_ ،
SQR (x) كـ SQRT_ ، x ^ 3 كـ "x ^ 3" ، ABS (x) كـ ABS_
من (حدد العد (*) ك ك
من m_income كدخل داخلي m_income AS b on a.id<=b.id
GROUP BY b.id) t؛

هناك نوعان من الاستعلامات في Access DBMS: QBE - استعلام حسب العينة و SQL(لغة ​​الاستعلام الهيكلية) هي لغة استعلام منظمة. يتم تشكيل طلب وفقًا للعينة عن طريق ملء نموذج طلب خاص في نافذة "Query Designer". SQL - يتم إنشاء الاستعلامات بواسطة المبرمجين من تسلسل SQL - تعليمات... يتم تكوين SQL ، كقاعدة عامة ، بواسطة المبرمجين على نموذج استعلام ، يتم فتحه بواسطة الأمر "Query Designer" في علامة التبويب "إنشاء" ويتم تحديد "وضع SQL" من القائمة عرض. تم تصميم لغة SQL للعمل مع البيانات ، أي لإنشاء وتعديل وإدارة البيانات في قواعد البيانات العلائقية.

وتجدر الإشارة إلى أن هناك العديد من أوضاع استعلام SQL (استعلامات ANSI-89 SQL و ANSI-92 SQL) التي تتوافق مع معايير ANSI-89 SQL و ANSI-92 SQL.

تحتوي التعليمات على وصف لمجموعة البيانات في SQL. عبارات SQLتتكون من جمل (اختر ، من ، من ، وما إلى ذلك). عروضفي SQL تتكون من مصطلحات (عوامل تشغيل أو أوامر ، معرفات ، ثوابت ، إلخ). تبدأ الجملة بجملة (واحدة من SELECT و CREATE و INSERT و UPDATE و DELETE وما إلى ذلك) وتنتهي بفاصلة منقوطة. عبارات SQL الرئيسية هي SELECT و FROM و WHERE.

على سبيل المثال ، جملة SQL:
حدد الطلاب. كود الطالب
من الطلاب
يتكون من جملة "SELECT Students.StudentCode" وعبارة "FROM Students".

تحتوي جملة SELECT على ملفات المشغل أو العاملحدد و المعرف"كود الطلاب". هنا ، يسبق الاسم الكامل لحقل StudentID باسم جدول الطلاب في قاعدة البيانات. SELECT - يحدد الحقل الذي يحتوي على البيانات المطلوبة. تتكون عبارة FROM من عبارة FROM والمعرف "الطلاب". FROM - يعرّف الجدول الذي يحتوي على الحقول المحددة في عبارة SELECT.

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

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

لعرض استعلامات SQL للتحديد في Access 2003 أو 2007 DBMS ، تحتاج إلى تنفيذ أمر وضع العرض / SQL في نافذة تصميم الاستعلام النشط (الشكل 1).


أرز. 1.

سنتلقى عبارة SQL (SELECT) لاختيار البيانات من قاعدة بيانات Access 2003 وفقًا لمعيار أداء الطالب "الدرجة = 5" (الشكل 2).



أرز. 2.

كما يلي من جملة SELECT (الشكل 1) ، فهي تصف مجموعة من البيانات بلغة SQL: SELECT - تحدد أسماء الحقول ، مسبوقة بأسماء الجداول التي تحتوي على البيانات ؛ FROM - تحدد الجداول وعلاقاتها من خلال الحقول الرئيسية للجداول (لهذا ، يتم استخدام INNER JOIN ... ON) ، على أساسها يتم اختيار البيانات ؛ WHREME - يحدد شروط اختيار الحقول ؛ ORDER BY - تحدد طريقة الفرز بترتيب تصاعدي (افتراضيًا ، يتم إجراء الفرز التصاعدي) لقيم حقل الاسم الأخير في جدول الطلاب.

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