JavaRush /جاوا بلاگ /Random-UR /ہم ڈیٹا بیس اور SQL زبان کا تجزیہ کرتے ہیں۔ (حصہ 4 - ہوم ...

ہم ڈیٹا بیس اور SQL زبان کا تجزیہ کرتے ہیں۔ (حصہ 4 - ہوم ورک چیک کرنا) - "A سے Z تک جاوا پروجیکٹ"

گروپ میں شائع ہوا۔
جاوا پروجیکٹ بنانے کے سلسلے میں ایک مضمون (دیگر مواد کے لنکس آخر میں ہیں)۔ اس کا مقصد کلیدی ٹیکنالوجیز کا تجزیہ کرنا ہے، نتیجہ ٹیلی گرام بوٹ لکھنا ہے۔ پچھلے مضامین اور ڈیٹا بیس پر ہوم ورک کا تجزیہ: 1 , 2 , 3 . ہر ایک کے لیے جس نے صبر اور برداشت کا مظاہرہ کیا، ہر اس شخص کے لیے جو میرے ساتھ اس چوتھے مضمون سے گزر رہا ہے، شاباش۔ جیسا کہ وہ کہتے ہیں، جو چلتا ہے وہ سڑک پر عبور حاصل کر سکتا ہے۔ اس ہفتے ڈیٹا بیس کے بارے میں حتمی مضمون جاری کیا جائے گا، جس میں ہم رشتوں اور شمولیت کی اقسام کے بارے میں بات کریں گے ۔ لیکن اس سے پہلے کہ ہم نئی معلومات سے نمٹیں، آئیے اپنا ہوم ورک چیک کریں... میں واقعی میں ایک استاد کی طرح محسوس کرتا ہوں۔ مجھ سے ناراض نہ ہوں: میرے پاس تدریسی تعلیم نہیں ہے، یہ یقینی بات ہے۔ چونکہ پچھلے ہفتے ریموٹ کنٹرول کی تفصیلی جانچ نے مواد کا بڑا حصہ لیا، میں نے ہوم ورک کے تجزیہ اور نئے مواد کے جائزے کو دو حصوں میں تقسیم کرنے کا فیصلہ کیا۔"A سے Z تک جاوا پروجیکٹ": ہم ڈیٹا بیس اور SQL زبان کا تجزیہ کرتے ہیں۔  حصہ 4 - ہوم ورک چیک کرنا - 1

دراصل، ہوم ورک کا تجزیہ

میں یقینی طور پر خوش ہوں کہ ایسے لوگ ہیں جو PD کرتے ہیں اور اس کے بارے میں بات کرتے ہیں۔ یہ ٹھنڈا ہے! مجھے ہر ممکن حد تک یقین ہے کہ علم کو مضبوط کیے بغیر محض پڑھنا کہیں نہ جانے کا راستہ ہے۔ لہذا، ہر ایک جس نے کیا یا کرنے کی کوشش کی - احترام. میں آپ کو کاموں کی شرائط یاد دلاتا ہوں:
  1. HAVING آپریٹر کو سمجھیں اور ہماری مثال سے میزوں کے لیے ایک مثال استفسار لکھیں۔ اگر آپ کو مزید واضح کرنے کے لیے کچھ فیلڈز یا مزید اقدار شامل کرنے کی ضرورت ہے، تو انہیں شامل کریں۔ اگر کوئی چاہتا ہے تو کمنٹس میں اپنا مثالی حل لکھیں - تاکہ اگر میرے پاس وقت ہو تو میں بھی اسے چیک کر سکتا ہوں۔
  2. UI کے ذریعے ڈیٹا بیس کے ساتھ کام کرنے کے لیے MySQL ورک بینچ انسٹال کریں۔ مجھے لگتا ہے کہ ہمارے پاس پہلے ہی کنسول سے کام کرنے کی کافی مشق ہو چکی ہے۔ ڈیٹا بیس سے جڑیں۔ اگر آپ ڈیٹا بیس کے ساتھ کام کرنے کے لیے کچھ اور استعمال کرتے ہیں، تو بلا جھجھک اس کام کو چھوڑ دیں۔ یہاں اور آگے میں صرف MySQL ورک بینچ استعمال کروں گا۔
  3. ہمارے ڈیٹا کا استعمال کرتے ہوئے رسید کے لیے درخواستیں لکھیں:
    1. سب سے چھوٹا/سب سے زیادہ آبادی والا ملک؛
    2. ملک میں باشندوں کی اوسط تعداد؛
    3. ان ممالک میں باشندوں کی اوسط تعداد جن کے نام "a" پر ختم ہوتے ہیں۔
    4. چار ملین سے زیادہ آبادی والے ممالک کی تعداد؛
    5. باشندوں کی تعداد میں کمی کے لحاظ سے ممالک کی ترتیب؛
    6. قدرتی ترتیب میں نام کے مطابق ممالک کو ترتیب دیں۔

آئیے HAVING کے بارے میں بات کرتے ہیں۔

آپریٹر کو جاننے سے آپ کو ایک سے زیادہ انٹرویو پاس کرنے میں مدد مل سکتی ہے جہاں SQL کے مسائل ہوں گے۔ اس لیے اسے سمجھنا بہت ضروری ہے۔ ایسا ہوتا ہے کہ آپ مجموعی افعال (SUM, MIN, MAX, AVG) کے لیے شرائط استعمال نہیں کر سکتے۔ اس کے علاوہ، HAVING کو ان فیلڈز کے لیے استعمال کیا جاتا ہے جن کو گروپ کیا جاتا ہے۔ اس کا کیا مطلب ہے؟ مثال کے طور پر، اگر ہم ایسے ممالک حاصل کرنا چاہتے ہیں جہاں شہروں میں رہنے والوں کی اوسط تعداد 50,000 سے زیادہ ہے، تو ہم HAVING استعمال کیے بغیر نہیں کر سکتے۔ جیسا کہ میں اسے سمجھتا ہوں، ایسا اس لیے کیا گیا ہے کہ جہاں WHERE کے بیان پر عمل درآمد ہونے کے بعد جمع ہوتا ہے اور اس میں مجموعی اقدار کو شامل کرنا ناممکن ہے جس کا حساب بعد میں کیا جائے گا۔ یہاں تک کہ اگر اب تک میری رائے سمجھ میں زیادہ اضافہ نہیں کرتی ہے، تو آپ اسے صرف ایک حقیقت کے طور پر قبول کر سکتے ہیں اور اس کے ساتھ چل سکتے ہیں۔ پروگرامنگ میں، اکثر ایسا ہوتا ہے کہ اگر ایک لمحے میں کوئی چیز غیر واضح ہو، تو اس کا مطلب یہ ہو سکتا ہے کہ دماغ نے ابھی تک اسے ہضم نہیں کیا ہے۔ یہ سوچ کر سو جائیں، اگلے دن سب کچھ واضح ہو جائے گا۔

MySQL ورک بینچ انسٹال کرنا

یہاں اور آگے میں سوالات کے لیے ورک بینچ کا استعمال کروں گا۔ میں آپ کو دکھاؤں گا کہ آپ کو ڈیٹا بیس سے کنکشن انسٹال کرنے اور بنانے کی کیا ضرورت ہے۔ یہ اوریکل کا ایک پروڈکٹ ہے، لہذا آپ کو صرف ان کی ویب سائٹ پر جانے کی ضرورت ہے اور اپنے مطلوبہ ورژن اور آپریٹنگ سسٹم کو منتخب کریں۔ ایسا کرنے کے لیے، اس لنک پر عمل کریں : "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 4 — проверка домашнего задания - 2یہاں آپ بالکل وہی آپریٹنگ سسٹم منتخب کر سکتے ہیں جس کی آپ کو ضرورت ہے۔ ڈاؤن لوڈ پر کلک کریں ، لیکن ڈاؤن لوڈ کرنے کے بجائے ہمیں یہ ونڈو نظر آئے گی: "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 4 — проверка домашнего задания - 3گمشدہ نہ ہوں، بس No شکریہ نام کا بٹن تلاش کریں، بس میرا ڈاؤن لوڈ شروع کریں ، اور ڈاؤن لوڈ شروع ہو جائے گا۔ وہ ایسا کیوں کر رہے ہیں؟ شاید، تاکہ زیادہ لوگ ان کے ساتھ رجسٹر ہوں، یہ ہمارے لیے اہم نہیں ہے۔ کامیاب ڈاؤن لوڈ کرنے کے بعد، انسٹالیشن فائل چلائیں۔ MacOS پر یہ اس طرح لگتا ہے: "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 4 — проверка домашнего задания - 4بس آئیکن کو گھسیٹیں اور بس، انسٹالیشن مکمل ہو گئی۔ اتنا مشکل نہیں جتنا خود MySQL انسٹال کرنا، ٹھیک ہے؟ یا ہم ابھی اس کے عادی ہو چکے ہیں اور زیادہ تجربہ کار ہو گئے ہیں؛) اس کام کا دوسرا حصہ اپنے ڈیٹا بیس سے رابطہ قائم کرنا ہے۔ اس کے لیے کیا ضرورت ہے؟ MySQL کنکشنز کے آگے جمع کے نشان پر کلک کریں: "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 4 — проверка домашнего задания - 5ظاہر ہونے والی ونڈو میں، ضروری ڈیٹا درج کریں:
  • کنکشن کا نام - ہمارے کنکشن کا نام۔ ایسے نام لکھیں جو ممکن حد تک واضح ہوں تاکہ بعد میں شناخت میں کوئی پریشانی نہ ہو۔ میں اس کنکشن کو JRTB_DB کا نام دیتا ہوں ؛
  • میزبان نام - پہلے ہی مقامی 127.0.0.1 (عرف لوکل ہوسٹ) کے طور پر سیٹ کیا جائے گا۔ ہمارے معاملے میں، کچھ بھی تبدیل کرنے کی ضرورت نہیں ہے، کیونکہ ڈیٹا بیس کمپیوٹر پر انسٹال ہے، لیکن اگر ڈیٹا بیس کہیں اور ہے، تو میزبان (اس مشین کا آئی پی جس پر ڈیٹا بیس چل رہا ہے) کو اس کے مطابق تبدیل کرنے کی ضرورت ہے۔
  • صارف نام - اگر ضروری ہو تو آپ اپنے صارف کی بھی وضاحت کر سکتے ہیں۔ اگر آپ نے اس کلید میں کچھ شامل نہیں کیا ہے، تو اسے بغیر تبدیلی کے چھوڑ دیں۔
  • پاس ورڈ - کیچین میں اسٹور پر کلک کریں اور بالکل وہی پاس ورڈ سیٹ کریں جو آپ نے اپنے لیے سیٹ کیا ہے۔ میں نے سب کچھ آسان چھوڑ دیا ۔
یہ چیک کرنے کے لیے کہ آیا کنکشن کام کرے گا، ٹیسٹ کنکشن پر کلک کریں : "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 4 — проверка домашнего задания - 6ٹھیک ہے، اگر سب کچھ صحیح طریقے سے کیا گیا تو نتیجہ آنے میں زیادہ دیر نہیں لگے گی: "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 4 — проверка домашнего задания - 7اب ہمارے پاس ڈیٹا بیس میں ایک محفوظ کنکشن ہے، اور ہمیں کنکشن بنانے اور بھرنے کی ضرورت نہیں پڑے گی۔ ہر بار نام اور پاس ورڈ میں۔ اور یہ خوشی اس طرح نظر آئے گی: "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 4 — проверка домашнего задания - 8ہم نئے بنائے گئے کنکشن میں جاتے ہیں اور درخواست کی ونڈو دیکھتے ہیں۔ اس بات کا یقین کرنے کے لیے کہ سب کچھ درست ہے، آئیے ڈیٹا بیس کی فہرست چیک کریں، اپنے پر جائیں اور شہروں کے بارے میں تمام ڈیٹا حاصل کریں: "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 4 — проверка домашнего задания - 9اور یہاں ہمیں اپنی ضرورت کے لیے carte blanche ملتا ہے۔ پہلا حصہ اس اسکرپٹ کا ذمہ دار ہے جسے ہم داخل کرتے ہیں۔ اگلا، رزلٹ گرڈ میں ، ہم اسکرپٹ میں آخری آپریشن کا نتیجہ دیکھتے ہیں۔ اور ایکشن آؤٹ پٹ آپریشنز اور اس کے نتائج کی فہرست دکھاتا ہے۔ ایک بہت ہی مفید چیز، میں آپ کو بتانا چاہتا ہوں: اس کی مدد سے آپ کچھ اسکرپٹس کے عمل کی رفتار کو مانیٹر کر سکتے ہیں۔ یہ کیوں ضروری ہے؟ ایپلی کیشن میں ٹاسک ایگزیکیوشن کی رفتار میں سب سے عام مسائل میں سے ایک ڈیٹا بیس میں استفسار کی رفتار ہے۔ یہاں آپ جلدی اور آسانی سے انہیں ہاتھ سے چیک کر سکتے ہیں۔

ہم ضروری درخواستیں لکھتے ہیں۔

ہمارے پاس مکمل کرنے کے لیے صرف 7 درخواستیں ہیں، چلیں!

  1. سب سے زیادہ آبادی والا ملک حاصل کریں۔ یہاں آپ چالاکی سے جا سکتے ہیں اور کئی راستے لے سکتے ہیں:

  • ملک کی میز کے مطابق

پھر ہمیں آبادی کے لحاظ سے اپنے سوال کو ترتیب دینے اور صرف ایک ریکارڈ لینے کی ضرورت ہے۔ ایسا کرنے کے لیے، آپ کو اسکرپٹ کے آخر میں ایک LIMIT آپریٹر شامل کرنے اور مطلوبہ مقدار بتانے کی ضرورت ہے: $ SELECT * ملک سے آرڈر بذریعہ آبادی DESC LIMIT 1؛"Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 4 — проверка домашнего задания - 10

  • سٹی ٹیبل کے مطابق

یہاں سب کچھ زیادہ دلچسپ ہے، کیونکہ درخواست زیادہ پیچیدہ، بلکہ زیادہ دلچسپ بھی ہوگی۔ چونکہ ہمیں ابھی تک شمولیت کے بارے میں کوئی اندازہ نہیں ہے، اس لیے ہم صرف ملک کی شناخت حاصل کر سکتے ہیں: $ SELECT country_id، SUM(آبادی) FROM city GROUP BY country_id ORDER BY SUM(آبادی) DESC LIMIT 1؛ "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 4 — проверка домашнего задания - 11یہاں ہم نے ایک عمدہ کام کیا - ہم نے ہر ملک کے تمام معروف شہروں کی آبادی کا مجموعہ جمع کیا، اس رقم سے ترتیب دیا گیا اور پہلا عنصر لیا۔ ٹھیک ہے، کیا یہ بہت اچھا ہے؟ مجھے خوشی ہوئی :D اس کے بعد آپ کو فوری طور پر ایک سوالیہ گرو کی طرح محسوس ہوتا ہے... (زیادہ دیر تک نہیں، یقیناً))

  1. سب سے چھوٹا ملک حاصل کریں۔ یہاں آپ چالاکی سے جا سکتے ہیں اور کئی راستے لے سکتے ہیں۔

اس صورت میں، سب کچھ بالکل اسی طرح ہو جائے گا. فرق صرف اتنا ہے کہ چھانٹی کو الٹ دیا جائے گا - بس۔ لہذا، میں صرف درخواستیں لکھتا ہوں:

  • سٹی ٹیبل کے مطابق

$ ملک_id کا انتخاب کریں، SUM(آبادی) شہر کے گروپ کے لحاظ سے ملک_id آرڈر کے حساب سے رقم (آبادی) کی حد 1؛

  • ملک کی میز کے مطابق

$ منتخب کریں * ملک سے آرڈر کریں آبادی کی حد 1؛ اور نتیجہ خود دیکھیں!

  1. ملک میں باشندوں کی اوسط تعداد

یہاں ایک بار پھر تکنیکی وضاحتیں کسی طرح درست نہیں ہیں، جیسے کہ مینیجر نے اسے لکھا تھا... میں نے یہ فیصلہ کیوں کیا؟ کیونکہ یہ واضح نہیں ہے کہ کس ٹیبل میں کام کرنا ہے۔ لیکن یہ عام بات ہے: کوئی کام ایسا نہیں ہے جس میں سب کچھ فوری طور پر واضح اور قابل فہم ہو۔ لہذا، آپ کو کاموں کو احتیاط سے پڑھنے کی ضرورت ہے، اور اگر آپ کے سوالات ہیں، تو ان سے فوری طور پر پوچھیں! یہ ٹھیک ہے، ایک تبصرہ۔ ہمارے ڈیٹا بیس میں موجود ڈیٹا کو مدنظر رکھتے ہوئے، ہم شہروں کے ڈیٹا کا استعمال کرتے ہوئے تلاش کریں گے۔ ایسا کرنے کے لیے، درج ذیل سوال لکھیں: $ SELECT country_id، AVG(آبادی) FROM city GROUP BY country_id؛ "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 4 — проверка домашнего задания - 12یہ یہاں آسان ہے: ہم AVG فنکشن استعمال کرتے ہیں اور اپنے شہر کے ریکارڈ کو ملک کے لحاظ سے گروپ کرتے ہیں۔

  1. ان ممالک میں باشندوں کی اوسط تعداد جن کے نام "a" سے ختم ہوتے ہیں

درخواست پر یہاں ہلکی سی تبدیلی کی جائے گی۔ گروپ بندی کرنے سے پہلے ہمیں ناموں سے فلٹرنگ شامل کرنے کی ضرورت ہے۔ میں اس مضمون کو شائع کرنے سے پہلے، تمام طلباء کی طرح، اپنا ہوم ورک کرتا ہوں، اور میں سمجھتا ہوں کہ جوائن کیے بغیر یہ مسئلہ حل نہیں ہو سکتا۔ کیوں؟ کیونکہ کنٹری آئی ڈی کے علاوہ ہمیں اس کا نام بھی لینا ہوگا۔ اور یہ دو میزوں کو ایک ریکارڈ میں شامل کیے بغیر نہیں ہو سکتا۔ لہذا، میں یہ کام ضرور کروں گا، لیکن یہ میرا جام ہے...))) میں درخواست میں LIKE کا استعمال کرتے ہوئے ایک کام کے ساتھ آنا چاہتا تھا...) $ SELECT ci.country_id, AVG(ci.population ) شہر سے اندرون ملک شامل ہوں co ON ci.country_id = co.id جہاں co.name کی طرح "%a" GROUP BY country_id؛ "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 4 — проверка домашнего задания - 13یہاں کیا ہوا ہے؟ سب سے پہلے، ہم نے غیر ملکی کلید country_id کا استعمال کرتے ہوئے شہر اور ملک کے ٹیبلز سے ریکارڈز کو جوائن کیا، ملک کے ناموں سے فلٹر کیا گیا تاکہ وہ "a" میں ختم ہوں اور تب ہی ملک_id کے لحاظ سے گروپ کیا جائے۔

  1. چار ملین سے زیادہ آبادی والے ممالک کی تعداد

یہاں ہمیں صرف COUNT فنکشن استعمال کرنے اور آبادی پر فلٹرنگ شامل کرنے کی ضرورت ہے: $ SELECT COUNT(*) ملک سے جہاں آبادی > 4000000؛ اس کے نتیجے میں ہمیں پتہ چلا کہ ایسے 3 ممالک ہیں، کیا یہ درست ہے؟ ہاں، صرف مالڈووا ہی یہ سنگ میل عبور نہیں کرتا ہے۔

  1. باشندوں کی تعداد میں کمی کے لحاظ سے ممالک کو ترتیب دیں۔

ایسا کرنے کے لیے، ہمیں ORDER BY آپریٹر استعمال کرنے کی ضرورت ہے جسے ہم پہلے سے جانتے ہیں۔ لیکن ذہن میں رکھیں کہ پہلے سے طے شدہ ترتیب قدرتی ترتیب میں ہے۔ نمبروں کے لیے اس کا مطلب یہ ہے کہ اسے صعودی ترتیب میں ترتیب دیا گیا ہے، سٹرنگز کے لیے اس کا مطلب ہے کہ اسے پہلے حروف سے شروع کر کے ترتیب دیا گیا ہے۔ اگر ہمیں نزولی ترتیب کی ضرورت ہے تو ہمیں فطری کے الٹا کی ضرورت ہے: $ SELECT * FROM country ORDER BY آبادی DESC;"Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 4 — проверка домашнего задания - 14

  1. قدرتی ترتیب میں نام کے لحاظ سے ممالک کو ترتیب دیں۔

یہ وہ جگہ ہے جہاں قدرتی ترتیب کیا ہے اس کا علم کام آئے گا۔ چونکہ یہ پہلے سے طے شدہ ہے، یہ ہمارے لیے کیک کا ایک ٹکڑا ہے: $ SELECT * ملک سے نام کے مطابق آرڈر کریں؛"Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 4 — проверка домашнего задания - 15

آؤٹ پٹ کے بجائے

ایسا ہوتا ہے کہ ہوم ورک حل کا سائز بہت بڑا ہو جائے گا، اس لیے ہم ایک استثناء کریں گے: میں اس مضمون کو چیک کے ساتھ شائع کر رہا ہوں، اور جمعہ کو میں کنکشنز اور جوائنز کے ساتھ نیا مواد شائع کروں گا۔ پڑھنے کے لیے سب کا شکریہ۔ جمعہ تک!

سیریز کے تمام مواد کی فہرست اس مضمون کے شروع میں ہے۔

تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION