ایس کیو ایل میں ، 'ہونے' اور 'جہاں' بیانات میں کیا فرق ہے؟ جب ہر ایک کو استعمال کرنا مناسب ہے؟


جواب 1:

جہاں ریکارڈ کو محدود کرنے کے لئے شق استعمال کی جاتی ہے۔ یا صرف مماثل ریکارڈ لائیں۔

ہونا بھی اسی طرح ہے جہاں ریکارڈ کو محدود کرنے کی شق ہے۔ لیکن یہ صرف اس صورت میں استعمال ہوتا ہے جب آپ کے پاس گروپ بائی شق ہے۔ اور گروپ بذریعہ شق استعمال کیا جاتا ہے جب آپ کے پاس جعلی ریکارڈ موجود ہوں اور آپ رقم ، گنتی ، اوسط ، زیادہ سے زیادہ ، منٹ وغیرہ کی مدد سے ایک ریکارڈ کو مستحکم کرنا چاہتے ہو۔

مثال کے طور پر جہاں: ایس کیو ایل کے نیچے صارفین کے ذریعہ آرڈر کی تعداد ڈھونڈنا ہے: * احکامات سے منتخب کریں جہاں گاہک_ آئڈ = 25۔

مثال کے طور پر: ایس کیو ایل کے نیچے صارفین کے ذریعہ آرڈر کی تعداد ڈھونڈنا ہے: کسٹمر_ ایڈ ، کاؤنٹی (آرڈر_ ایڈ) سے کسٹمر_ ایڈ کے ذریعہ آرڈرز گروپ منتخب کریں


جواب 2:

بنیادی وضاحت یہ ہے کہ جہاں پہلے فلٹر ہوگا ، اس کے بعد فلٹر ہوگا۔ یہی وجہ ہے کہ مجموعی افعال کے لئے HAVING کا استعمال کیا جاتا ہے records ریکارڈ کی حالت کو ہر حالت کے بعد جمع کیا جاتا ہے۔

ایس کیو ایل مثال: مائک نامی تمام صارفین کی عمر اگر 3 سے زیادہ ہے تو

نمبر منتخب کریں (*) نمبر ، عمر ، نام منجانب صارفین جہاں نام = "مائک" گروپ کے ذریعہ گروپ نمبر> 3

یہ کس طرح کام کرتا ہے: 1. مائ ایس کیو ایل سب سے پہلے ان تمام صارفین کا انتخاب کرے گا جن کا نام مائک 2 ہے۔ تمام صارفین کی عمر کے لحاظ سے گروپ بندی کی جائے گی - آئیے یہ کہتے ہیں کہ وہاں 34 صارفین کی تعداد 34 ہے ، مائی ایس کی ایل اسی عمر کے لئے صرف ایک ریکارڈ / صارف دکھائے گا (34 سال کی عمر میں ایک گروپ بنائے گا) ۔3۔ صرف اب ایس کیو ایل گروپ شدہ صارفین کی گنتی کرے گا ، یہ جانچ کر سکے گا کہ ایک مخصوص گروپ میں کتنے صارفین ہیں۔

جیسا کہ آپ دیکھ سکتے ہیں ، ان کاموں کو اس مخصوص ترتیب میں ہونا ضروری ہے۔

اب ، یہ جاننا ضروری ہے کہ آپ جو کچھ بھی استعمال کرتے ہیں وہ سلیکٹ میں موجود ہونا ضروری ہے۔ مثال:

- یہ درست نہیں منتخب شدہ کاؤنٹی (*) نمبر ، نام ، عمر صارفین سے ہے جہاں کا نام = "مائک" GROUP BY عمر کے ذریعہ پتہ <> "" ہے - پتہ منتخب نہیں کیا گیا ہے - لیکن یہ ایک VALID SELECT COUNT (*) ہے ) نمبر ، نام ، عمر صارفین سے جہاں نام = "مائک" اور پتہ <> "" عمر کے ذریعہ گروپ> عمر> 30 - ہم اپنے منتخب کردہ کسی بھی چیز سے فلٹر کرسکتے ہیں۔

اب ، تیزرفتاری کے ل index ، اشاریہ جات کو ذہن میں رکھنے کے ل you آپ WHERE استعمال کرنا چاہیں گے

ہماری مثال میں ، ہم یہ کہتے ہیں کہ عمر ایک اشاریہ ہے ، مذکورہ ایس کیو ایل اگلے درجے کے مقابلہ میں آہستہ ہوگا

منتخب کریں کاؤنٹ (*) نمبر ، نام ، عمر صارفین سے جہاں نام = "مائک" اور پتہ <> "" اور عمر> 30 - ہم عمر کے حساب سے انڈیکس گروپ استعمال کرتے ہیں - تمام بھاری کام مکمل ہونے کے بعد HAVING کا استعمال نہیں کرتے ہیں۔

آپ کو یہاں اچھ findا جواب مل سکتا ہے جہاں بمقابلہ ہو رہا ہے (دوسرا جواب کارکردگی کا حصہ بیان کرتا ہے)


جواب 3:

بنیادی وضاحت یہ ہے کہ جہاں پہلے فلٹر ہوگا ، اس کے بعد فلٹر ہوگا۔ یہی وجہ ہے کہ مجموعی افعال کے لئے HAVING کا استعمال کیا جاتا ہے records ریکارڈ کی حالت کو ہر حالت کے بعد جمع کیا جاتا ہے۔

ایس کیو ایل مثال: مائک نامی تمام صارفین کی عمر اگر 3 سے زیادہ ہے تو

نمبر منتخب کریں (*) نمبر ، عمر ، نام منجانب صارفین جہاں نام = "مائک" گروپ کے ذریعہ گروپ نمبر> 3

یہ کس طرح کام کرتا ہے: 1. مائ ایس کیو ایل سب سے پہلے ان تمام صارفین کا انتخاب کرے گا جن کا نام مائک 2 ہے۔ تمام صارفین کی عمر کے لحاظ سے گروپ بندی کی جائے گی - آئیے یہ کہتے ہیں کہ وہاں 34 صارفین کی تعداد 34 ہے ، مائی ایس کی ایل اسی عمر کے لئے صرف ایک ریکارڈ / صارف دکھائے گا (34 سال کی عمر میں ایک گروپ بنائے گا) ۔3۔ صرف اب ایس کیو ایل گروپ شدہ صارفین کی گنتی کرے گا ، یہ جانچ کر سکے گا کہ ایک مخصوص گروپ میں کتنے صارفین ہیں۔

جیسا کہ آپ دیکھ سکتے ہیں ، ان کاموں کو اس مخصوص ترتیب میں ہونا ضروری ہے۔

اب ، یہ جاننا ضروری ہے کہ آپ جو کچھ بھی استعمال کرتے ہیں وہ سلیکٹ میں موجود ہونا ضروری ہے۔ مثال:

- یہ درست نہیں منتخب شدہ کاؤنٹی (*) نمبر ، نام ، عمر صارفین سے ہے جہاں کا نام = "مائک" GROUP BY عمر کے ذریعہ پتہ <> "" ہے - پتہ منتخب نہیں کیا گیا ہے - لیکن یہ ایک VALID SELECT COUNT (*) ہے ) نمبر ، نام ، عمر صارفین سے جہاں نام = "مائک" اور پتہ <> "" عمر کے ذریعہ گروپ> عمر> 30 - ہم اپنے منتخب کردہ کسی بھی چیز سے فلٹر کرسکتے ہیں۔

اب ، تیزرفتاری کے ل index ، اشاریہ جات کو ذہن میں رکھنے کے ل you آپ WHERE استعمال کرنا چاہیں گے

ہماری مثال میں ، ہم یہ کہتے ہیں کہ عمر ایک اشاریہ ہے ، مذکورہ ایس کیو ایل اگلے درجے کے مقابلہ میں آہستہ ہوگا

منتخب کریں کاؤنٹ (*) نمبر ، نام ، عمر صارفین سے جہاں نام = "مائک" اور پتہ <> "" اور عمر> 30 - ہم عمر کے حساب سے انڈیکس گروپ استعمال کرتے ہیں - تمام بھاری کام مکمل ہونے کے بعد HAVING کا استعمال نہیں کرتے ہیں۔

آپ کو یہاں اچھ findا جواب مل سکتا ہے جہاں بمقابلہ ہو رہا ہے (دوسرا جواب کارکردگی کا حصہ بیان کرتا ہے)


جواب 4:

بنیادی وضاحت یہ ہے کہ جہاں پہلے فلٹر ہوگا ، اس کے بعد فلٹر ہوگا۔ یہی وجہ ہے کہ مجموعی افعال کے لئے HAVING کا استعمال کیا جاتا ہے records ریکارڈ کی حالت کو ہر حالت کے بعد جمع کیا جاتا ہے۔

ایس کیو ایل مثال: مائک نامی تمام صارفین کی عمر اگر 3 سے زیادہ ہے تو

نمبر منتخب کریں (*) نمبر ، عمر ، نام منجانب صارفین جہاں نام = "مائک" گروپ کے ذریعہ گروپ نمبر> 3

یہ کس طرح کام کرتا ہے: 1. مائ ایس کیو ایل سب سے پہلے ان تمام صارفین کا انتخاب کرے گا جن کا نام مائک 2 ہے۔ تمام صارفین کی عمر کے لحاظ سے گروپ بندی کی جائے گی - آئیے یہ کہتے ہیں کہ وہاں 34 صارفین کی تعداد 34 ہے ، مائی ایس کی ایل اسی عمر کے لئے صرف ایک ریکارڈ / صارف دکھائے گا (34 سال کی عمر میں ایک گروپ بنائے گا) ۔3۔ صرف اب ایس کیو ایل گروپ شدہ صارفین کی گنتی کرے گا ، یہ جانچ کر سکے گا کہ ایک مخصوص گروپ میں کتنے صارفین ہیں۔

جیسا کہ آپ دیکھ سکتے ہیں ، ان کاموں کو اس مخصوص ترتیب میں ہونا ضروری ہے۔

اب ، یہ جاننا ضروری ہے کہ آپ جو کچھ بھی استعمال کرتے ہیں وہ سلیکٹ میں موجود ہونا ضروری ہے۔ مثال:

- یہ درست نہیں منتخب شدہ کاؤنٹی (*) نمبر ، نام ، عمر صارفین سے ہے جہاں کا نام = "مائک" GROUP BY عمر کے ذریعہ پتہ <> "" ہے - پتہ منتخب نہیں کیا گیا ہے - لیکن یہ ایک VALID SELECT COUNT (*) ہے ) نمبر ، نام ، عمر صارفین سے جہاں نام = "مائک" اور پتہ <> "" عمر کے ذریعہ گروپ> عمر> 30 - ہم اپنے منتخب کردہ کسی بھی چیز سے فلٹر کرسکتے ہیں۔

اب ، تیزرفتاری کے ل index ، اشاریہ جات کو ذہن میں رکھنے کے ل you آپ WHERE استعمال کرنا چاہیں گے

ہماری مثال میں ، ہم یہ کہتے ہیں کہ عمر ایک اشاریہ ہے ، مذکورہ ایس کیو ایل اگلے درجے کے مقابلہ میں آہستہ ہوگا

منتخب کریں کاؤنٹ (*) نمبر ، نام ، عمر صارفین سے جہاں نام = "مائک" اور پتہ <> "" اور عمر> 30 - ہم عمر کے حساب سے انڈیکس گروپ استعمال کرتے ہیں - تمام بھاری کام مکمل ہونے کے بعد HAVING کا استعمال نہیں کرتے ہیں۔

آپ کو یہاں اچھ findا جواب مل سکتا ہے جہاں بمقابلہ ہو رہا ہے (دوسرا جواب کارکردگی کا حصہ بیان کرتا ہے)