ایس کیو ایل سبکیوری بیرونی سوال کے ساتھ شامل ہوں۔

Ays Kyw Ayl Sbkywry Byrwny Swal K Sat Shaml W



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

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







ہم ڈیٹا فلٹرنگ، چھانٹنا، ایک سے زیادہ ٹیبلز پر جمع کرنے اور بہت کچھ کرنے کے لیے ذیلی سوالات کا استعمال کر سکتے ہیں۔



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



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





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

ایس کیو ایل آؤٹر جوائنز میں مہارت حاصل کریں۔

اگر آپ یہ سمجھنا چاہتے ہیں کہ ذیلی جوائنز کے ساتھ کیسے کام کیا جائے تو بیرونی جوائنز کے ساتھ کام کرنے کا طریقہ سیکھنا ایک اہم عنصر ہے۔



اگر آپ ناواقف ہیں تو، ایس کیو ایل آؤٹر جوائن آپ کو ایک ٹیبل سے تمام قطاریں اور دوسرے ٹیبل سے مماثل قطاریں لانے دیتا ہے۔ یہ اس سے تھوڑا زیادہ پیچیدہ ہے، بشمول بائیں بیرونی جوڑ، دائیں بیرونی جوڑ، مکمل بیرونی جوڑ، وغیرہ۔

ایس کیو ایل کے بائیں بیرونی جوائن میں، استفسار بائیں میز سے تمام قطاریں اور دائیں میز سے مماثل قطاریں لوٹاتا ہے۔ اگر صحیح ٹیبل میں کوئی مماثل قطاریں نہ ہوں تو استفسار میں نتیجے میں آنے والے کالموں میں NULL قدریں شامل ہوتی ہیں۔

دائیں بیرونی شمولیت کی صورت میں، استفسار دائیں میز سے تمام قطاریں لوٹاتا ہے لیکن بائیں میز سے صرف مماثل قطاریں۔ اسی طرح، سوال میں NULL قدریں شامل ہوتی ہیں اگر بائیں میز سے کوئی مماثل قطاریں نہ ہوں۔

آخر میں، ہمارے پاس مکمل بیرونی شمولیت ہے۔ یہ شمولیت دائیں اور بائیں میزوں سے تمام قطاریں اور کسی بھی غیر مماثل ریکارڈ کے لیے NULL قدریں لوٹاتا ہے۔

ایس کیو ایل سبکیوری جوائن کرتی ہے۔

اب جب کہ ہم ایس کیو ایل سبکوریز کے بارے میں سمجھ گئے ہیں، آئیے سبکوری جوائنز کے بارے میں بات کرتے ہیں۔ Subquery جوائنز ہمیں میزوں میں شامل ہونے کے لیے بیرونی استفسار کے اندر موجود ذیلی سوالات کو استعمال کرنے کی اجازت دیتا ہے۔

اگر آپ پوچھ رہے ہیں، کیا یہ ہے؟ جی ہاں، یہی سب کچھ ہے جو سبکیوری میں شامل ہوتا ہے۔

اس کو بہتر طریقے سے ظاہر کرنے کے لیے، درج ذیل نحو کی مثال لیں جس کا مظاہرہ درج ذیل میں کیا گیا ہے۔

منتخب کریں۔ *
ٹیبل 1 سے
بائیں باہر شمولیت (
کالم 1، کالم 2 کو منتخب کریں۔
ٹیبل 2 سے
) AS ذیلی استفسار
ON table1.column3 = subquery.column1;


پچھلے نحو میں، ہم ٹیبل ون سے تمام کالموں کو بائیں بیرونی جوائن کا استعمال کرتے ہوئے اسے ذیلی سوال کے ساتھ جوائن کرتے ہیں۔ ذیلی استفسار کا کردار ٹیبل 2 سے متعین کالموں کو حاصل کرنا ہے۔ پھر ہم اسے ٹیبل 1 کے ساتھ کالم 2 کی شرط پر ٹیبل 1 کے ساتھ اور ذیلی استفسار سے کالم 1 میں شامل کرتے ہیں۔

عملی مثال:

نظریاتی طور پر، یہ کم بدیہی معلوم ہوتا ہے لیکن آئیے ہم سکیلا ڈیٹا بیس کو لے کر ایک حقیقی دنیا کا منظر نامہ دیکھتے ہیں۔

فرض کریں کہ ہم ڈیٹا بیس میں موجود تمام فلموں کی فہرست اور ان کی متعلقہ زبانوں کو بازیافت کرنا چاہتے ہیں۔ فلموں کی زبانیں لینگویج ٹیبل میں محفوظ ہیں، اور فلم کے نام فلم ٹیبل میں محفوظ ہیں۔

تاہم، فلم ٹیبل میں ایک غیر ملکی کلید ہے جسے زبان کی میز سے 'language_id' کالم کہتے ہیں۔ لہذا، ہم ذیل کے استفسار میں دکھایا گیا ہے کہ دونوں جدولوں کو ایک ساتھ جوڑنے کے لیے بائیں بیرونی جوائن کے ساتھ ذیلی سوال جوائن کا استعمال کر سکتے ہیں۔

f.title، l.name AS زبان کو منتخب کریں۔
فلم سے ایف
بائیں باہر شمولیت (
زبان_آئی ڈی کو منتخب کریں، نام
زبان سے
) AS l
ON f.language_id = l.language_id;


پچھلی مثال کے سوال میں، ہم فلم ٹیبل سے ٹائٹل کالم اور لینگویج ٹیبل سے نام کا کالم منتخب کرتے ہیں۔

اس کے بعد ہم زبانوں کے ٹیبل سے language_id اور نام کے کالم کو منتخب کرنے کے لیے ذیلی استفسار کا استعمال کرتے ہیں۔ اگلا مرحلہ اس شرط پر فلم ٹیبل کے ساتھ شامل ہونا ہے کہ فلم ٹیبل سے لینگویج_آئی ڈی لینگویج ٹیبل سے لینگویج_آئی ڈی کے برابر ہو۔

اس بات کو یقینی بنانے کے لیے کہ تمام فلمیں رزلٹ میں شامل ہیں، ہمیں لیفٹ آؤٹر جوائن استعمال کرنے کی ضرورت ہے جو بائیں ٹیبل کے تمام نتائج پر مشتمل ہے جو کہ اس معاملے میں فلم ٹیبل ہے۔

ایک مثال آؤٹ پٹ مندرجہ ذیل ہے:


ہم دائیں بیرونی شمولیت کے ساتھ بھی ایسا ہی کر سکتے ہیں۔ نحو درج ذیل ہے:

منتخب کریں۔ *
ٹیبل 1 سے
دائیں باہر جوائن کریں۔ (
کالم 1، کالم 2 کو منتخب کریں۔
ٹیبل 2 سے
) AS ذیلی استفسار
ON table1.column3 = subquery.column1;


یہ اسی طرح کا برتاؤ کرتا ہے لیکن صحیح جدول میں تمام ریکارڈز کو شامل کرتا ہے چاہے کوئی مماثل ریکارڈ نہ ہوں۔

جاننے کے لیے مفید چیزیں

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

مثال کے طور پر، ایک بڑے ڈیٹا سیٹ کے ساتھ سبکیوری جوائنز استعمال کرنے سے گریز کریں۔ اس کی وجہ یہ ہے کہ وہ وسیع ریکارڈ واپس کر سکتے ہیں جو ڈیٹا بیس کی کارکردگی کو متاثر کر سکتے ہیں۔

کسی بھی ذیلی سوال کو جوائن کرنے سے پہلے استفسار کے تجزیے کے ٹولز استعمال کرنے پر غور کریں۔

نتیجہ

اس ٹیوٹوریل نے ایس کیو ایل میں ذیلی سوالات اور ذیلی سوالات کے ساتھ کام کرنے کے بنیادی اصولوں کی کھوج کی۔ اس ٹیوٹوریل کے آخر میں، آپ اب سمجھ گئے ہیں کہ سبکوری جوائنز کے ساتھ کیسے کام کیا جائے، آپ کو انہیں کیوں استعمال کرنے کی ضرورت پڑسکتی ہے، اور اس بات کی ایک عملی مثال کہ وہ آپ کے ورک فلو میں کس طرح آپ کی مدد کرسکتے ہیں۔