JavaRush /جاوا بلاگ /Random-SD /اسان ڊيٽابيس ۽ SQL ٻولي جو تجزيو ڪريون ٿا. (حصو 4 - هوم و...

اسان ڊيٽابيس ۽ SQL ٻولي جو تجزيو ڪريون ٿا. (حصو 4 - هوم ورڪ چيڪ ڪندي) - "جاوا پروجيڪٽ A کان Z تائين"

گروپ ۾ شايع ٿيل
جاوا پروجيڪٽ ٺاهڻ بابت هڪ سيريز مان هڪ مضمون (ٻين مواد جي لنڪ آخر ۾ آهن). ان جو مقصد اهم ٽيڪنالاجي جو تجزيو ڪرڻ آهي، نتيجو هڪ ٽيليگرام بوٽ لکڻ آهي. اڳيون مضمون ۽ ڊيٽابيس تي گھر جي ڪم جو تجزيو: 1 , 2 , 3 . هر ڪنهن لاءِ جنهن صبر ۽ برداشت ڪيو، هر ڪنهن لاءِ جيڪو مون سان گڏ چوٿين آرٽيڪل لاءِ وڃي رهيو آهي - تمام سٺو. جيئن چوندا آھن، جيڪو ھلندو آھي اھو ئي رستي تي عبور حاصل ڪري سگھي ٿو. هن هفتي ڊيٽابيس تي آخري آرٽيڪل جاري ڪيو ويندو، جنهن ۾ اسان رشتي ۽ شامل ٿيڻ جي قسمن بابت ڳالهائينداسين . پر ان کان اڳ جو اسان نئين معلومات سان ڊيل ڪريون، اچو ته اسان جو هوم ورڪ چيڪ ڪريون... مون واقعي هڪ استاد وانگر محسوس ڪيو. مون سان ناراض نه ٿيو: مون وٽ تدريسي تعليم نه آهي، اها پڪ آهي. گذريل هفتي کان وٺي، ريموٽ ڪنٽرول جي تفصيلي چڪاس مواد جي وڏي حصي کي ورتو، مون فيصلو ڪيو ته منهنجي هوم ورڪ جي تجزيي ۽ نئين مواد جي جائزي کي ٻن حصن ۾ ورهايو."جاوا پروجيڪٽ A کان Z تائين": اسان ڊيٽابيس ۽ SQL ٻولي جو تجزيو ڪريون ٿا.  حصو 4 - گھر جي ڪم جي جانچ ڪرڻ - 1

دراصل، گھر جي ڪم جو تجزيو

مان ضرور خوش آهيان ته اهڙا ماڻهو آهن جيڪي PD ڪندا آهن ۽ ان بابت ڳالهائيندا آهن. هي ٿڌو آهي! مون کي جيترو ٿي سگهي پڪ آهي ته علم کي مضبوط ڪرڻ کان سواءِ صرف پڙهڻ هڪ رستو آهي ڪٿي به نه. تنهن ڪري، هرڪو جيڪو ڪيو يا ڪرڻ جي ڪوشش ڪئي - احترام. اچو ته توهان کي ڪمن جا شرط ياد ڏياريان:
  1. HAVING آپريٽر کي سمجھو ۽ اسان جي مثال مان ٽيبل لاءِ مثال سوال لکو. جيڪڏهن توهان کي ڪجهه فيلڊ يا وڌيڪ قدر شامل ڪرڻ جي ضرورت آهي انهي کي وڌيڪ واضح ڪرڻ لاء، انهن کي شامل ڪريو. جيڪڏهن ڪو چاهي ٿو ته، پنهنجو مثالي حل تبصرن ۾ لکو- پوءِ جيڪڏهن مون وٽ وقت هجي ته مان به ان کي چيڪ ڪري سگهان ٿو.
  2. UI ذريعي ڊيٽابيس سان ڪم ڪرڻ لاءِ MySQL Workbench انسٽال ڪريو. مان سمجهان ٿو ته اسان وٽ اڳ ۾ ئي ڪافي مشق آهي ڪنسول کان ڪم ڪرڻ. ڊيٽابيس سان ڳنڍيو. جيڪڏهن توهان ڊيٽابيس سان ڪم ڪرڻ لاءِ ٻيو ڪجهه استعمال ڪريو ٿا، آزاد محسوس ڪريو هن ڪم کي ڇڏڻ لاءِ. هتي ۽ اڳتي آئون صرف MySQL Workbench استعمال ڪندس.
  3. اسان جي ڊيٽا استعمال ڪندي وصولي لاءِ درخواستون لکو:
    1. ننڍڙو / سڀ کان وڌيڪ آبادي وارو ملڪ؛
    2. ملڪ ۾ رهندڙن جو سراسري تعداد؛
    3. انهن ملڪن ۾ رهندڙن جو سراسري تعداد جن جا نالا "a" ۾ ختم ٿين ٿا؛
    4. چئن ملين کان وڌيڪ جي آبادي سان ملڪن جو تعداد؛
    5. آبادي جي گھٽتائي سان ملڪن کي ترتيب ڏيو؛
    6. ملڪ کي قدرتي ترتيب ۾ نالن سان ترتيب ڏيو.

اچو ته HAVING بابت ڳالهايون

هينگ آپريٽر کي ڄاڻڻ توهان کي هڪ کان وڌيڪ انٽرويو پاس ڪرڻ ۾ مدد ڪري سگهي ٿي جتي SQL مسئلا هوندا. تنهن ڪري، ان کي سمجهڻ تمام ضروري آهي. بس ائين ٿئي ٿو ته توهان ڪمن جي مجموعي لاءِ حالتون استعمال نٿا ڪري سگهو (SUM, MIN, MAX, AVG). ان کان علاوه، HAVING استعمال ڪيو ويندو آهي فيلڊز لاءِ جيڪي گروپ ٿيل آهن. هن جو ڇا مطلب آهي؟ مثال طور، جيڪڏهن اسان انهن ملڪن کي حاصل ڪرڻ چاهيون ٿا جتي شهرن ۾ رهندڙن جو سراسري تعداد 50,000 کان وڌيڪ آهي، اسان HAVING استعمال ڪرڻ کان سواء نٿا ڪري سگهون. جيئن ته مان سمجهان ٿو، اهو ڪيو ويو آهي ڇاڪاڻ ته مجموعو ٿئي ٿو جڏهن WHERE بيان تي عمل ڪيو ويو آهي ۽ ان ۾ مجموعي قدر شامل ڪرڻ ناممڪن آهي جيڪو بعد ۾ حساب ڪيو ويندو. جيتوڻيڪ اڃا تائين منهنجي راءِ سمجھ ۾ گهڻو اضافو نه ڪيو آهي، توهان صرف ان کي حقيقت طور قبول ڪري سگهو ٿا ۽ ان سان گڏ وڃو. پروگرامنگ ۾، اهو اڪثر ٿئي ٿو ته جيڪڏهن ڪا شيء هڪ لمحي ۾ واضح ناهي، ان جو مطلب اهو ٿي سگهي ٿو ته دماغ اڃا تائين هضم نه ڪيو آهي. هن سوچ سان سمهڻ، ۽ ايندڙ ڏينهن هر شيء واضح ٿي ويندي.

MySQL Workbench انسٽال ڪرڻ

هتي ۽ وڌيڪ آئون استعمال ڪندس Workbench سوالن لاءِ. مان توهان کي ڏيکاريندس جيڪو توهان کي انسٽال ڪرڻ ۽ ڊيٽابيس سان ڪنيڪشن ٺاهڻ جي ضرورت آهي. هي هڪ پراڊڪٽ آهي Oracle کان، تنهنڪري توهان کي صرف انهن جي ويب سائيٽ تي وڃڻ جي ضرورت آهي ۽ جيڪو توهان چاهيو ٿا اهو نسخو ۽ آپريٽنگ سسٽم چونڊيو. هن کي ڪرڻ لاء، هن لنڪ تي عمل ڪريو : "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 4 — проверка домашнего задания - 2هتي توهان چونڊي سگهو ٿا بلڪل آپريٽنگ سسٽم جنهن جي توهان کي ضرورت آهي. ڪلڪ ڪريو ڊائون لوڊ ، پر ڊائون لوڊ ڪرڻ جي بدران اسان کي هي ونڊو نظر ايندي: "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 4 — проверка домашнего задания - 3وڃايو نه وڃايو، بس بٽڻ کي ڳوليو جنهن کي سڏيو ويندو آهي نه مهرباني، بس منهنجي ڊائون لوڊ شروع ڪريو ، ۽ ڊائون لوڊ شروع ٿي ويندي. اهي ائين ڇو ڪري رهيا آهن؟ ٿي سگهي ٿو، انهي ڪري ته وڌيڪ ماڻهو انهن سان گڏ رجسٽرڊ ڪن، اهو اسان لاء اهم ناهي. ڪامياب ڊائون لوڊ ڪرڻ کان پوء، انسٽاليشن فائل کي هلائي. MacOS تي اهو ڏسڻ ۾ اچي ٿو: "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 4 — проверка домашнего задания - 4بس آئڪن کي ڇڪيو ۽ اهو ئي آهي، انسٽاليشن مڪمل ٿي وئي آهي. ايترو ڏکيو ناهي جيترو خود MySQL انسٽال ڪرڻ، صحيح؟ يا اسان ان کي استعمال ڪيو آهي ۽ وڌيڪ تجربيڪار ٿي چڪا آهيون؛) هن ڪم جو ٻيو حصو اسان جي ڊيٽابيس سان ڪنيڪشن قائم ڪرڻ آهي. ان لاءِ ڪهڙي ضرورت آهي؟ MySQL ڪنيڪشن جي اڳيان پلس سائن تي ڪلڪ ڪريو: "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 4 — проверка домашнего задания - 5ونڊو ۾ جيڪو ظاهر ٿئي ٿو، ضروري ڊيٽا داخل ڪريو:
  • ڪنيڪشن جو نالو - اسان جي ڪنيڪشن جو نالو. نالا لکو جيڪي ممڪن حد تائين واضح هجن ته جيئن بعد ۾ سڃاڻپ ۾ ڪو مسئلو نه اچي. مان هن ڪنيڪشن جو نالو ڏيان ٿو JRTB_DB ؛
  • ميزبان نالو - اڳ ۾ ئي مقرر ڪيو ويندو مقامي 127.0.0.1 (اڪا localhost). اسان جي حالت ۾، ڪا به شيء تبديل ڪرڻ جي ضرورت ناهي، ڇاڪاڻ ته ڊيٽابيس ڪمپيوٽر تي نصب ٿيل آهي، پر جيڪڏهن ڊيٽابيس ڪنهن ٻئي هنڌ آهي، پوء ميزبان (مشين جو ip جنهن تي ڊيٽابيس هلندي آهي) مطابق تبديل ٿيڻ جي ضرورت آهي؛
  • يوزر نالو - جيڪڏھن ضروري ھجي ته توھان پنھنجو استعمال ڪندڙ به بيان ڪري سگھو ٿا. جيڪڏھن توھان ھن چاٻي ۾ ڪجھ به شامل نه ڪيو آھي، ان کي تبديل نه ڪيو؛
  • پاسورڊ - ڪلڪ ڪريو اسٽور ڪيچين ۾ ۽ بلڪل سيٽ ڪريو پاسورڊ جيڪو توهان پنهنجي لاءِ سيٽ ڪيو. مون سڀ ڪجھ سادو ڇڏي ڏنو - روٽ .
چيڪ ڪرڻ لاءِ ته ڇا ڪنيڪشن ڪم ڪندو، ٽيسٽ ڪنيڪشن تي ڪلڪ ڪريو : "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 4 — проверка домашнего задания - 6خير، جيڪڏھن سڀ ڪجھ صحيح طريقي سان ڪيو ويو، نتيجو اچڻ ۾ گھڻو وقت نه ھوندو: "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 4 — проверка домашнего задания - 7ھاڻي اسان وٽ ڊيٽابيس ۾ محفوظ ڪيل ڪنيڪشن آھي، ۽ اسان کي ڪنيڪشن ٺاھڻ ۽ ڀرڻ جي ضرورت نه پوندي. نالو ۽ پاسورڊ ۾ هر وقت. ۽ اها خوشي هن طرح نظر ايندي: "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 4 — проверка домашнего задания - 8اسان نئين ٺاهيل ڪنيڪشن ۾ وڃون ٿا ۽ درخواست ونڊو ڏسو. پڪ ڪرڻ لاءِ ته سڀ ڪجهه صحيح آهي، اچو ته چيڪ ڪريون ڊيٽابيس جي لسٽ، اسان وٽ وڃو ۽ شهرن بابت سمورو ڊيٽا حاصل ڪريو: "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 4 — проверка домашнего задания - 9۽ هتي اسان حاصل ڪريون ٿا ڪارٽ بلاڪ ان لاءِ جنهن جي اسان کي ضرورت آهي. پهريون حصو ان اسڪرپٽ جو ذميوار آهي جيڪو اسان داخل ڪيو. اڳيون، نتيجو گرڊ ۾ ، اسان اسڪرپٽ ۾ آخري آپريشن جو نتيجو ڏسون ٿا. ۽ Action Output ڏيکاري ٿو عملن جي فهرست ۽ ان جو نتيجو. هڪ تمام مفيد شيء، مان توهان کي ٻڌائڻ چاهيان ٿو: ان جي مدد سان توهان ڪجهه لکتن جي عمل جي رفتار جي نگراني ڪري سگهو ٿا. اهو ڇو ضروري آهي؟ ايپليڪيشن ۾ ڪم جي عمل جي رفتار ۾ سڀ کان وڌيڪ عام مسئلن مان هڪ آهي ڊيٽابيس ۾ سوالن جي عمل جي رفتار. هتي توهان جلدي ۽ آساني سان انهن کي هٿ سان چيڪ ڪري سگهو ٿا.

اسان ضروري درخواستون لکون ٿا

اسان وٽ صرف 7 درخواستون مڪمل ڪرڻ لاءِ آهن، اچو ته وڃو!

  1. سڀ کان وڌيڪ آبادي وارو ملڪ حاصل ڪريو. هتي توهان چالاڪي سان وڃو ۽ ڪيترائي رستا وٺي سگهو ٿا:

  • ملڪ جي ٽيبل جي مطابق

پوءِ اسان کي صرف پنهنجي سوال کي آبادي جي حساب سان ترتيب ڏيڻو پوندو ۽ صرف هڪ رڪارڊ وٺڻو پوندو. هن کي ڪرڻ لاءِ، توهان کي اسڪرپٽ جي آخر ۾ هڪ LIMIT آپريٽر شامل ڪرڻ ۽ گهربل مقدار بيان ڪرڻ جي ضرورت آهي: $ SELECT * FROM country ORDER BY آبادي DESC LIMIT 1؛"Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 4 — проверка домашнего задания - 10

  • شهر جي ٽيبل جي مطابق

هتي سڀ ڪجهه وڌيڪ دلچسپ آهي، ڇو ته درخواست وڌيڪ پيچيده ٿي ويندي، پر وڌيڪ دلچسپ پڻ. جيئن ته اسان کي اڃا تائين شامل ٿيڻ جي باري ۾ ڪا ڄاڻ ناهي، اسان صرف ملڪ جي سڃاڻپ حاصل ڪري سگهون ٿا: $ SELECT country_id، SUM(آبادي) FROM city GROUP BY country_id ORDER BY SUM(population) DESC LIMIT 1; "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 4 — проверка домашнего задания - 11هتي اسان هڪ بهترين ڪم ڪيو - اسان هر ملڪ جي سڀني سڃاتل شهرن جي آبادي جو مجموعو گڏ ڪيو، هن رقم سان ترتيب ڏنو ۽ پهريون عنصر ورتو. چڱو، ڇا اهو عظيم آهي؟ مان خوش آهيان :D ان کان پوء توهان فوري طور تي هڪ سوال گرو وانگر محسوس ڪيو ... (ڊگهي لاء نه، يقينا))

  1. ننڍو ملڪ حاصل ڪريو. هتي توهان چالاڪي سان وڃو ۽ ڪيترائي رستا وٺي سگهو ٿا

هن معاملي ۾، سڀڪنھن شيء کي بلڪل ساڳيو ٿيندو. فرق صرف اهو آهي ته ترتيب کي رد ڪيو ويندو - اهو سڀ ڪجهه آهي. تنهن ڪري، مان صرف درخواستون لکندو آهيان:

  • شهر جي ٽيبل جي مطابق

$ SELECT country_id، SUM (آبادي) شهر کان گروپ ملڪ طرفان ترتيب ڏيو رقم (آبادي) حد 1؛

  • ملڪ جي ٽيبل جي مطابق

$ SELECT * ملڪ کان آرڊر بائي آبادي جي حد 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هتي ڇا ٿيو؟ پهريون، اسان شهر ۽ ملڪ جي جدولن مان رڪارڊ شامل ڪيو پرڏيهي ڪيئي ملڪ_id استعمال ڪندي، ملڪ جي نالن سان فلٽر ڪيو ويو ته جيئن اهي "a" ۾ ختم ٿين، ۽ صرف پوءِ ئي ملڪ_id طرفان گروپ ڪيو وڃي.

  1. انهن ملڪن جو تعداد جن جي آبادي چار لک کان وڌيڪ آهي

هتي اسان کي صرف COUNT فنڪشن استعمال ڪرڻ جي ضرورت آهي ۽ آبادي تي فلٽرنگ شامل ڪريو: $ SELECT COUNT(*) ملڪ مان جتي آبادي > 4000000؛ نتيجي طور، اسان کي معلوم ٿئي ٿو ته 3 اهڙا ملڪ آهن، ڇا اهو صحيح آهي؟ ها، صرف مالدووا هن سنگ ميل کي نه گذريو آهي.

  1. آبادي جي گھٽتائي سان ملڪن کي ترتيب ڏيو

هن کي ڪرڻ لاء، اسان کي استعمال ڪرڻ جي ضرورت آهي ORDER BY آپريٽر جيڪو اسان اڳ ۾ ئي ڄاڻون ٿا. پر ذهن ۾ رکو ته ڊفالٽ جي ترتيب قدرتي ترتيب ۾ آهي. انگن لاءِ هن جو مطلب اهو آهي ته ان کي ترتيب ڏنل ترتيب سان ترتيب ڏنل آهي، تارن لاءِ ان جو مطلب آهي ته ان کي ترتيب ڏنل آهي پهرين اکرن کان شروع ڪندي. جيڪڏھن اسان کي ھيٺئين قسم جي ضرورت آھي، اسان کي قدرتي ھڪڙي جي انورس جي ضرورت آھي: $ SELECT * ملڪ کان آرڊر بائي آبادي DESC؛"Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 4 — проверка домашнего задания - 14

  1. ملڪ کي قدرتي ترتيب ۾ نالن سان ترتيب ڏيو

هي اهو آهي جتي قدرتي حڪم ڇا آهي جو علم هٿ ۾ ايندو. جيئن ته اهو ڊفالٽ آهي، اهو اسان لاءِ ڪيڪ جو هڪ ٽڪرو آهي: $ SELECT * ملڪ کان نالو آرڊر ڪريو؛"Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 4 — проверка домашнего задания - 15

پيداوار جي بدران

بس ائين ٿئي ٿو ته هوم ورڪ حل جو سائز تمام وڏو هوندو، تنهنڪري اسان هڪ استثنا ڪنداسين: مان هي مضمون هڪ چيڪ سان شايع ڪري رهيو آهيان، ۽ جمعه تي آئون نئين مواد شايع ڪندس ڪنيڪشن ۽ جوائن سان. پڙهڻ لاءِ سڀني جي مهرباني. جمعه تائين!

سيريز ۾ سڀني مواد جي هڪ فهرست هن مضمون جي شروعات ۾ آهي.

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