شروع سے مائیکروسافٹ ایکسیس ایس کیو ایل سوالات کیسے لکھیں۔

شروع سے مائیکروسافٹ ایکسیس ایس کیو ایل سوالات کیسے لکھیں۔

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





ایک قاری پوچھتا ہے:

مجھے مائیکروسافٹ ایکسیس میں سوال لکھنے میں دشواری ہو رہی ہے۔ مجھے دو پروڈکٹ ٹیبلز کے ساتھ ایک ڈیٹا بیس ملا ہے جس میں ایک مشترکہ کالم ہے جس میں ایک عددی پروڈکٹ کوڈ اور اس سے وابستہ پروڈکٹ کا نام ہے۔ ٹیبل بی میں میں نتائج کے نام سے ایک کالم شامل کرنا چاہتا ہوں جس میں ٹیبل اے سے پروڈکٹ کا نام موجود ہو اور ٹیبل بی سے پروڈکٹ کا نام جب ٹیبل اے میں موجود نہ ہو تو کیا آپ کو کوئی مشورہ ہے؟





بروس کا جواب:

مائیکروسافٹ ایکسیس ایک ڈیٹا بیس مینجمنٹ سسٹم (DBMS) ہے جو ونڈوز اور میک دونوں مشینوں پر استعمال کے لیے ڈیزائن کیا گیا ہے۔ یہ ڈیٹا پروسیسنگ اور سٹوریج کے لیے مائیکروسافٹ کا جیٹ ڈیٹا بیس انجن استعمال کرتا ہے۔ یہ صارفین کے لیے ایک گرافیکل انٹرفیس بھی فراہم کرتا ہے جو کہ اسٹرکچرڈ کوئری لینگویج (SQL) کو سمجھنے کی ضرورت کو تقریبا ختم کر دیتا ہے۔





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

نقطہ اغاز

اگر آپ کو پہلے ہی رسائی یا کسی اور RDBMS سے کچھ واقفیت نہیں ہے تو ، میں تجویز کروں گا کہ آپ آگے بڑھنے سے پہلے ان وسائل سے شروع کریں:



ان مضامین میں فراہم کردہ تصورات کی بنیادی تفہیم رکھنے سے مندرجہ ذیل کو ہضم کرنا تھوڑا آسان ہوجائے گا۔

ڈیٹا بیس ریلیشنز اور نارملائزیشن

ذرا تصور کریں کہ آپ دنیا بھر میں 50 مختلف قسم کے ویجٹ فروخت کرنے والی کمپنی چلا رہے ہیں۔ آپ کے پاس کلائنٹ کی تعداد 1،250 ہے اور اوسط مہینے میں ان کلائنٹس کو 10،000 ویجٹ فروخت کریں۔ آپ فی الحال ان تمام سیلز کو ٹریک کرنے کے لیے ایک ہی اسپریڈشیٹ استعمال کر رہے ہیں - مؤثر طریقے سے ایک ڈیٹا بیس ٹیبل۔ اور ہر سال آپ کی اسپریڈشیٹ میں ہزاروں قطاریں شامل کرتی ہیں۔





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





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

ڈیٹا بیس کا استعمال کرتے ہوئے اور ڈیٹا کو معمول پر لاتے ہوئے ، ہم اشیاء کو متعدد جدولوں جیسے انوینٹری ، کلائنٹس اور آرڈرز میں الگ کر سکتے ہیں۔

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

اصل جدول میں جہاں ہم نے یہ ڈیٹا ہٹایا ہے ، ہم غیر ملکی کلید (کلائنٹ آئی ڈی) کے لیے ایک کالم شامل کریں گے جو کہ اس مخصوص کلائنٹ کے لیے معلومات پر مشتمل مناسب قطار سے جوڑتا ہے۔

اب ، جب جوان اسمتھ نے اپنا نام جوان بینز رکھ دیا ، تبدیلی صرف کلائنٹ ٹیبل میں ایک بار کرنے کی ضرورت ہے۔ جوائنڈ ٹیبلز سے ہر دوسرا حوالہ موکل کا مناسب نام نکالے گا اور ایک رپورٹ جو کہ جوان نے پچھلے 5 سالوں سے خریدی ہوئی چیز کو دیکھ رہی ہے ، اس کے پہلے اور شادی شدہ دونوں ناموں کے تحت تمام احکامات حاصل کیے بغیر رپورٹ کیسے بنائی جائے گی .

ایک اضافی فائدہ کے طور پر ، یہ استعمال شدہ اسٹوریج کی مجموعی مقدار کو بھی کم کرتا ہے۔

اقسام میں شامل ہوں۔

ایس کیو ایل پانچ مختلف اقسام کی شمولیت کی وضاحت کرتا ہے: اندرونی ، بائیں آؤٹ ، دائیں آؤٹ ، مکمل آؤٹ ، اور کراس۔ SQL بیان میں OUTER کلیدی لفظ اختیاری ہے۔

مائیکروسافٹ ایکسیس اندرونی (ڈیفالٹ) ، بائیں آؤٹ ، دائیں آؤٹ ، اور کراس کے استعمال کی اجازت دیتا ہے۔ FULL OUTER اس طرح سے تعاون یافتہ نہیں ہے ، لیکن LEFT OUTER ، UNION ALL ، اور RIGHT OUTER کا استعمال کرکے ، یہ زیادہ CPU سائیکلوں اور I/O آپریشنز کی قیمت پر جعلی ہو سکتا ہے۔

CROSS جوائن کی آؤٹ پٹ بائیں میز کی ہر صف کو دائیں میز کی ہر صف کے ساتھ جوڑتا ہے۔ صرف ایک بار جب میں نے CROSS جوائن کرتے ہوئے دیکھا ہے وہ ڈیٹا بیس سرورز کی لوڈ ٹیسٹنگ کے دوران ہے۔

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

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

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

اب ، انہیں کچھ ڈیٹا کے ساتھ آباد کریں۔

3 جوائن کی اقسام کیسے کام کرتی ہیں اس میں فرق ظاہر کرنے کے لیے ، میں نے پروڈا سے 1 ، 5 اور 8 اندراجات کو حذف کر دیا ہے۔

اگلے، ایک نیا سوال بنائیں پر جا کر تخلیق> استفسار ڈیزائن۔ . شو ٹیبل ڈائیلاگ سے دونوں جدولوں کو منتخب کریں اور شامل کریں پر کلک کریں ، پھر بند کریں .

ٹیبل پروڈا میں پروڈکٹ آئی ڈی پر کلک کریں ، اسے ٹیبل پروڈ بی میں پروڈکٹ آئی ڈی پر گھسیٹیں اور ٹیبلز کے درمیان تعلق بنانے کے لیے ماؤس کا بٹن جاری کریں۔

آئٹمز کے مابین تعلقات کی نمائندگی کرنے والی میزوں کے درمیان لائن پر دائیں کلک کریں۔ جوائن پراپرٹیز کو منتخب کریں۔ .

بطور ڈیفالٹ ، جوائن ٹائپ 1 (INNER) منتخب کیا جاتا ہے۔ آپشن 2 ایک بائیں آؤٹ جوائن ہے اور 3 رائٹ آؤٹ جوائن ہے۔

ہم پہلے INNER شمولیت کو دیکھیں گے ، لہذا ڈائیلاگ کو خارج کرنے کے لیے ٹھیک پر کلک کریں۔

استفسار ڈیزائنر میں ، وہ قطعات منتخب کریں جو ہم ڈراپ ڈاؤن فہرستوں سے دیکھنا چاہتے ہیں۔

جب ہم استفسار چلاتے ہیں (ربن میں سرخ عجمی نقطہ) ، یہ دونوں جدولوں سے ProductName فیلڈ دکھائے گا جس میں پہلے کالم میں ٹیبل ProdA اور دوسرے میں ProdB کی قدر ہوگی۔

نوٹس کریں نتائج صرف وہ اقدار دکھاتے ہیں جہاں دونوں جدولوں میں ProductID برابر ہے۔ اگرچہ ٹیبل ProdB میں ProductID = 1 کے لیے ایک اندراج ہے ، یہ نتائج میں ظاہر نہیں ہوتا کیونکہ ProductID = 1 ٹیبل ProdA میں موجود نہیں ہے۔ یہی بات ProductID = 11 پر لاگو ہوتی ہے۔ یہ ٹیبل ProdA میں موجود ہے لیکن ٹیبل ProdB میں نہیں۔

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

SELECT ProdA.ProductName, ProdB.ProductName FROM ProdA INNER JOIN ProdB ON ProdA.ProductID = ProdB.ProductID;

ڈیزائن ویو پر واپس جانا ، شمولیت کی قسم کو 2 (بائیں آؤٹ) میں تبدیل کریں۔ نتائج دیکھنے کے لیے استفسار چلائیں۔

جیسا کہ آپ دیکھ سکتے ہیں ، ٹیبل ProdA میں ہر اندراج کو نتائج میں دکھایا گیا ہے جبکہ صرف ProdB میں وہ لوگ جن کے ٹیبل ProdB میں مماثل ProductID اندراج ہے نتائج میں ظاہر ہوتے ہیں۔

ProdB.ProductName کالم میں خالی جگہ ایک خاص قدر (NULL) ہے کیونکہ ٹیبل ProdB میں کوئی مماثل قدر نہیں ہے۔ یہ بعد میں اہم ثابت ہوگا۔

SELECT ProdA.ProductName, ProdB.ProductName FROM ProdA LEFT JOIN ProdB ON ProdA.ProductID = ProdB.ProductID;

تیسری قسم کے جوائن (رائٹ آؤٹ) کے ساتھ ایک ہی چیز آزمائیں۔

نتائج ٹیبل پروڈ بی سے ہر چیز کو ظاہر کرتے ہیں جبکہ یہ خالی (NULL کے نام سے جانا جاتا ہے) اقدار دکھا رہا ہے جہاں پروڈا ٹیبل کی مماثل قیمت نہیں ہے۔ اب تک ، یہ ہمیں اپنے قارئین کے سوال میں مطلوبہ نتائج کے قریب لاتا ہے۔

SELECT ProdA.ProductName, ProdB.ProductName FROM ProdA RIGHT JOIN ProdB ON ProdA.ProductID = ProdB.ProductID;

ایک استفسار میں افعال کا استعمال

کسی فنکشن کے نتائج بھی استفسار کے حصے کے طور پر واپس کیے جا سکتے ہیں۔ ہم چاہتے ہیں کہ ہمارے نتائج کے سیٹ میں 'نتائج' کے نام سے ایک نیا کالم ظاہر ہو۔ اس کی قیمت ٹیبل ProdA کے ProductName کالم کا مواد ہو گی اگر ProdA کی کوئی قیمت ہے (یہ NULL نہیں ہے) ، ورنہ اسے ٹیبل ProdB سے لیا جانا چاہیے۔

یہ نتیجہ پیدا کرنے کے لیے فوری IF (IIF) فنکشن استعمال کیا جا سکتا ہے۔ فنکشن تین پیرامیٹرز لیتا ہے۔ پہلی شرط یہ ہے کہ اس کی صحیح یا غلط قیمت کا جائزہ لیا جائے۔ دوسرا پیرامیٹر وہ قیمت ہے جو شرط درست ہونے پر واپس کی جائے ، اور تیسرا پیرامیٹر وہ قیمت ہے جو شرط غلط ہے۔

ہماری صورت حال کے لیے مکمل فنکشن کی تعمیر اس طرح دکھائی دیتی ہے:

IIF(ProdA.ProductID Is Null, ProdB.ProductName,ProdA.ProductName)

نوٹس کریں کہ کنڈیشن پیرامیٹر مساوات کی جانچ نہیں کرتا ہے۔ ڈیٹا بیس میں Null ویلیو کی کوئی ویلیو نہیں ہوتی جس کا موازنہ کسی بھی دوسری ویلیو سے کیا جا سکتا ہے ، بشمول ایک اور Null۔ دوسرے الفاظ میں ، Null Null کے برابر نہیں ہے۔ کبھی اس سے گزرنے کے لیے ، ہم اس کے بجائے 'Is' کلیدی لفظ استعمال کرتے ہوئے قیمت چیک کرتے ہیں۔

ہم ایک ہی نتیجہ حاصل کرنے کے لیے 'Is Not Null' بھی استعمال کر سکتے تھے اور صحیح اور غلط کے پیرامیٹرز کی ترتیب کو تبدیل کر سکتے تھے۔

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

ایسا کرنے کے لیے برابر SQL کوڈ ہوگا:

SELECT ProdA.ProductName, ProdB.ProductName, IIF(ProdA.ProductID Is Null,ProdB.ProductName,ProdA.ProductName) AS Results FROM ProdA RIGHT JOIN ProdB ON ProdA.ProductID = ProdB.ProductID;

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

دوستوں کو پیسے بھیجنے کے لیے ایپس

یہاں ہم ہر اندراج کے لیے دیکھتے ہیں جہاں ٹیبل پروڈا کی ایک قدر ہوتی ہے ، وہ قدر نتائج کالم میں ظاہر ہوتی ہے۔ اگر ProdA ٹیبل میں کوئی اندراج نہیں ہے تو ، ProdB سے اندراج نتائج میں ظاہر ہوتا ہے جو بالکل وہی ہے جو ہمارے قاری نے پوچھا۔

مائیکروسافٹ ایکسیس سیکھنے کے لیے مزید وسائل کے لیے ، جوئل لی کے مائیکروسافٹ ایکسیس سیکھنے کا طریقہ چیک کریں: 5 مفت آن لائن وسائل۔

بانٹیں بانٹیں ٹویٹ ای میل۔ کیا یہ ونڈوز 11 کو اپ گریڈ کرنے کے قابل ہے؟

ونڈوز کو دوبارہ ڈیزائن کیا گیا ہے۔ لیکن کیا یہ آپ کو ونڈوز 10 سے ونڈوز 11 میں منتقل کرنے پر راضی کرنے کے لیے کافی ہے؟

اگلا پڑھیں۔
متعلقہ موضوعات۔
  • پیداوری
  • ماہرین سے پوچھیں۔
مصنف کے بارے میں بروس ایپر۔(13 مضامین شائع ہوئے)

بروس 70 کی دہائی سے الیکٹرانکس کے ساتھ کھیل رہا ہے ، 80 کی دہائی کے اوائل سے کمپیوٹر ، اور ٹیکنالوجی کے بارے میں سوالات کے درست جواب دے رہا ہے جو اس نے استعمال نہیں کیا اور نہ ہی پورا وقت دیکھا۔ وہ گٹار بجانے کی کوشش کرکے خود کو بھی تنگ کرتا ہے۔

بروس ایپر سے مزید

ہماری نیوز لیٹر کو سبسکرائب کریں

ٹیک ٹپس ، جائزے ، مفت ای بکس ، اور خصوصی سودوں کے لیے ہمارے نیوز لیٹر میں شامل ہوں!

سبسکرائب کرنے کے لیے یہاں کلک کریں۔