الفرق بين أين وبعد وجود جملة في SQL

مؤلف: Laura McKinney
تاريخ الخلق: 1 أبريل 2021
تاريخ التحديث: 1 قد 2024
Anonim
Difference between where and having in sql server in arabic
فيديو: Difference between where and having in sql server in arabic

المحتوى


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

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

  1. رسم بياني للمقارنة
  2. تعريف
  3. الاختلافات الرئيسية
  4. خاتمة

رسم بياني للمقارنة

أساس للمقارنةأيننأخذ
الأساسينفذت في عمليات الصف.نفذت في العمود العمليات.
تنطبق علىصف واحدتلخيص الصف أو المجموعات.
جلب البياناتيقوم فقط بجلب البيانات المعينة من صفوف معينة وفقًا للحالة.في البداية ، يتم جلب البيانات الكاملة ثم يتم فصلها وفقًا للحالة.
وظائف مجمعةلا يمكن أن تظهر في جملة WHERE.يمكن أن تظهر في جملة HAVING.
يستعمل معاختر وعبارات أخرى مثل UPDATE أو DELETE أو أي منها.لا يمكن استخدامها دون عبارة SELECT.
يتصرف مثلقبل التصفيةآخر فلتر
مجموعة منيأتي بعد أين.يأتي قبل أن يحصل.


تعريف أين الفقرة

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

يقوم SQL أيضًا بتنفيذ الروابط المنطقية و, أو و ليس في جملة WHERE والتي تعرف أيضًا باسم منطقية شرط؛ الشرط يجب أن يكون صحيحا لاسترداد tuples. تتضمن معاملات تعبيرات الوصلات المنطقية عوامل المقارنة مثل <, <=, >, >=, =و <>. تقوم عوامل المقارنة هذه بمقارنة السلاسل والتعبيرات الحسابية. ويمكن استخدامه في تحديد بيان ، وكذلك في UPDATE ، حذف صياغات.

لنأخذ مثالا. الجدول الموضح أدناه باسم ‘مبيعات‘يتكون الجدول من‘المنتج‘و‘Sales_amount‘الصفات.


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

SELECT Product، sum (Sales_amount) AS Total_sales from Sales WHERE Product in (Phone، Speakers) GROUP BY Product؛

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

تعريف وجود شرط

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

يتصرف بنفس الطريقة التي يتم بها استخدام كلمة GROUP BY. يمكن أن تظهر وظائف المجموعة مثل min و max و avg و sum و count في جملتين فقط: جملة SELECT و HAVING. يوفر شرطًا على الصفوف المقابلة لكل قيمة في مجموعة السمات. سيتم عرض المجموعة الوحيدة من السجلات التي تفي بالشرط كنتيجة لذلك.

هنا أيضًا نأخذ نفس مثال جملة WHERE ونظر في نفس الشيء ‘مبيعات' الطاولة. عندما نريد حساب إجمالي المبيعات من الهاتف ومكبرات الصوت باستخدام جملة HAVING ، سوف نكتب الاستعلام التالي.

SELECT Product، sum (Sales_amount) AS Total_sales from Sales GROUP BY Product HAVING Product in (phone، Speakers)؛

ينتج الاستعلام المخرجات التالية حيث يتم استرداد المنتجات أولاً ، ثم يتم تنفيذ الوظيفة الإجمالية (المجموع) ويتم تصفية المجموعات الأخيرة على عكس جملة WHERE.

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

SELECT Product، sum (Sales_amount) AS Total_sales from Sales GROUP BY Product HAVING sum (Sales_amount)> 1000؛

الناتج الناتج هو:

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

  1. يتم استخدام جملة WHERE في عمليات الصف ويتم تطبيقها على صف واحد بينما يتم استخدام جملة HAVING في عمليات العمود ويمكن تطبيقها على صفوف أو مجموعات ملخصة.
  2. في جملة WHERE يتم جلب البيانات المطلوبة وفقًا للشرط المطبق. في المقابل ، تجلب جملة HAVING بيانات كاملة ثم يتم الفصل وفقًا للحالة.
  3. لا يمكن أبدًا ظهور الوظائف التجميعية مثل min ، sum ، max ، avg مع جملة WHERE. على عكس ، يمكن أن تظهر هذه الوظائف في جملة HAVING.
  4. لا يمكن استخدام جملة HAVING بدون عبارة SELECT. على العكس ، حيث يمكن استخدامها مع SELECT ، UPDATE ، DELETE ، إلخ.
  5. حيث يتصرف البند كفلتر مسبق بينما يعمل HAVING كفلتر لاحق.
  6. حيث يتم استخدام جملة جملة GROUP BY قبل GROUP GROUP. هذا يدل على أن WHERE تصفية الصفوف قبل إجراء العمليات الحسابية الإجمالية. من ناحية أخرى ، يأتي HAVING بعد GROUP BY ، مما يعني أنه يتم تصفية بعد إجراء العمليات الحسابية الإجمالية.

خاتمة

تعمل جملة WHERE و HAVING بنفس الطريقة باستثناء الميزة الإضافية التي تشتهر جملة HAVING بها. يمكن أن تعمل جملة HAVING بكفاءة مع الوظائف التجميعية بينما لا يمكن تشغيلها مع الوظائف التجميعية.