جاوا پروجيڪٽ ٺاهڻ بابت هڪ سيريز مان هڪ مضمون (ٻين مواد جي لنڪ آخر ۾ آهن). ان جو مقصد اهم ٽيڪنالاجي جو تجزيو ڪرڻ آهي، نتيجو هڪ ٽيليگرام بوٽ لکڻ آهي. اڳيون مضمون ۽ ڊيٽابيس تي گھر جي ڪم جو تجزيو: 1 , 2 , 3 . هر ڪنهن لاءِ جنهن صبر ۽ برداشت ڪيو، هر ڪنهن لاءِ جيڪو مون سان گڏ چوٿين آرٽيڪل لاءِ وڃي رهيو آهي - تمام سٺو. جيئن چوندا آھن، جيڪو ھلندو آھي اھو ئي رستي تي عبور حاصل ڪري سگھي ٿو. هن هفتي ڊيٽابيس تي آخري آرٽيڪل جاري ڪيو ويندو، جنهن ۾ اسان رشتي ۽ شامل ٿيڻ جي قسمن بابت ڳالهائينداسين . پر ان کان اڳ جو اسان نئين معلومات سان ڊيل ڪريون، اچو ته اسان جو هوم ورڪ چيڪ ڪريون... مون واقعي هڪ استاد وانگر محسوس ڪيو. مون سان ناراض نه ٿيو: مون وٽ تدريسي تعليم نه آهي، اها پڪ آهي. گذريل هفتي کان وٺي، ريموٽ ڪنٽرول جي تفصيلي چڪاس مواد جي وڏي حصي کي ورتو، مون فيصلو ڪيو ته منهنجي هوم ورڪ جي تجزيي ۽ نئين مواد جي جائزي کي ٻن حصن ۾ ورهايو.
پوءِ اسان کي صرف پنهنجي سوال کي آبادي جي حساب سان ترتيب ڏيڻو پوندو ۽ صرف هڪ رڪارڊ وٺڻو پوندو. هن کي ڪرڻ لاءِ، توهان کي اسڪرپٽ جي آخر ۾ هڪ LIMIT آپريٽر شامل ڪرڻ ۽ گهربل مقدار بيان ڪرڻ جي ضرورت آهي: $ SELECT * FROM country ORDER BY آبادي DESC LIMIT 1؛
هتي سڀ ڪجهه وڌيڪ دلچسپ آهي، ڇو ته درخواست وڌيڪ پيچيده ٿي ويندي، پر وڌيڪ دلچسپ پڻ. جيئن ته اسان کي اڃا تائين شامل ٿيڻ جي باري ۾ ڪا ڄاڻ ناهي، اسان صرف ملڪ جي سڃاڻپ حاصل ڪري سگهون ٿا: $ SELECT country_id، SUM(آبادي) FROM city GROUP BY country_id ORDER BY SUM(population) DESC LIMIT 1; هتي اسان هڪ بهترين ڪم ڪيو - اسان هر ملڪ جي سڀني سڃاتل شهرن جي آبادي جو مجموعو گڏ ڪيو، هن رقم سان ترتيب ڏنو ۽ پهريون عنصر ورتو. چڱو، ڇا اهو عظيم آهي؟ مان خوش آهيان :D ان کان پوء توهان فوري طور تي هڪ سوال گرو وانگر محسوس ڪيو ... (ڊگهي لاء نه، يقينا))
هن معاملي ۾، سڀڪنھن شيء کي بلڪل ساڳيو ٿيندو. فرق صرف اهو آهي ته ترتيب کي رد ڪيو ويندو - اهو سڀ ڪجهه آهي. تنهن ڪري، مان صرف درخواستون لکندو آهيان:
$ SELECT country_id، SUM (آبادي) شهر کان گروپ ملڪ طرفان ترتيب ڏيو رقم (آبادي) حد 1؛
$ SELECT * ملڪ کان آرڊر بائي آبادي جي حد 1؛ ۽ پنهنجو نتيجو ڏسو!
هتي وري ٽيڪنيڪل وضاحت ڪنهن حد تائين درست ناهي، ڄڻ ته مئنيجر اهو لکيو هو... مون اهو فيصلو ڇو ڪيو؟ ڇاڪاڻ ته اهو واضح ناهي ته ڪهڙي ٽيبل ۾ ڪم ڪيو وڃي. پر اهو عام آهي: اتي ڪو به ڪم نه آهي جنهن ۾ هر شيء فوري طور تي واضح ۽ سمجهي ويندي. تنهن ڪري، توهان کي احتياط سان ڪم پڙهڻ جي ضرورت آهي، ۽ جيڪڏهن توهان وٽ سوال آهي، انهن کي فوري طور تي پڇو! اھو صحيح آھي، ھڪڙو تبصرو. اسان وٽ ڊيٽابيس ۾ موجود ڊيٽا کي نظر ۾ رکندي، اسان شهرن مان ڊيٽا استعمال ڪندي ڳولا ڪنداسين. ائين ڪرڻ لاءِ، ھيٺ ڏنل سوال لکو: $ SELECT country_id، AVG(آبادي) FROM city GROUP BY country_id؛ اهو هتي سادو آهي: اسان AVG فنڪشن استعمال ڪريون ٿا ۽ ملڪ جي لحاظ کان اسان جي شهر جي رڪارڊ کي گروپ ڪريون ٿا.
درخواست تي هتي ٿوري تبديلي ڪئي ويندي. اسان کي گروپ ڪرڻ کان اڳ نالن سان فلٽرنگ شامل ڪرڻ جي ضرورت آھي. مان هن مضمون کي شايع ڪرڻ کان اڳ، سڀني شاگردن وانگر، پنهنجو هوم ورڪ ڪريان ٿو، ۽ مان سمجهان ٿو ته هي مسئلو شامل ٿيڻ کان سواءِ حل نٿو ٿي سگهي. ڇو؟ ڇو ته ملڪ جي سڃاڻپ کان علاوه، اسان کي پڻ سندس نالو وٺڻو پوندو. ۽ اهو ٻن ٽيبلن کي هڪ رڪارڊ ۾ شامل ڪرڻ کان سواءِ نٿو ٿي سگهي. تنهن ڪري، مان اهو ڪم ڪندس، يقينا، پر هي منهنجو جام آهي ...))) مون کي درخواست ۾ LIKE استعمال ڪندي هڪ ڪم سان گڏ اچڻ چاهيو ٿا ...) $ SELECT ci.country_id، AVG(ci.population ) شهر کان اندروني ملڪ ۾ شامل ٿيو co ON ci.country_id = co.id جتي co.name وانگر "%a" GROUP BY country_id؛ هتي ڇا ٿيو؟ پهريون، اسان شهر ۽ ملڪ جي جدولن مان رڪارڊ شامل ڪيو پرڏيهي ڪيئي ملڪ_id استعمال ڪندي، ملڪ جي نالن سان فلٽر ڪيو ويو ته جيئن اهي "a" ۾ ختم ٿين، ۽ صرف پوءِ ئي ملڪ_id طرفان گروپ ڪيو وڃي.
هتي اسان کي صرف COUNT فنڪشن استعمال ڪرڻ جي ضرورت آهي ۽ آبادي تي فلٽرنگ شامل ڪريو: $ SELECT COUNT(*) ملڪ مان جتي آبادي > 4000000؛ نتيجي طور، اسان کي معلوم ٿئي ٿو ته 3 اهڙا ملڪ آهن، ڇا اهو صحيح آهي؟ ها، صرف مالدووا هن سنگ ميل کي نه گذريو آهي.
هن کي ڪرڻ لاء، اسان کي استعمال ڪرڻ جي ضرورت آهي ORDER BY آپريٽر جيڪو اسان اڳ ۾ ئي ڄاڻون ٿا. پر ذهن ۾ رکو ته ڊفالٽ جي ترتيب قدرتي ترتيب ۾ آهي. انگن لاءِ هن جو مطلب اهو آهي ته ان کي ترتيب ڏنل ترتيب سان ترتيب ڏنل آهي، تارن لاءِ ان جو مطلب آهي ته ان کي ترتيب ڏنل آهي پهرين اکرن کان شروع ڪندي. جيڪڏھن اسان کي ھيٺئين قسم جي ضرورت آھي، اسان کي قدرتي ھڪڙي جي انورس جي ضرورت آھي: $ SELECT * ملڪ کان آرڊر بائي آبادي DESC؛
هي اهو آهي جتي قدرتي حڪم ڇا آهي جو علم هٿ ۾ ايندو. جيئن ته اهو ڊفالٽ آهي، اهو اسان لاءِ ڪيڪ جو هڪ ٽڪرو آهي: $ SELECT * ملڪ کان نالو آرڊر ڪريو؛
دراصل، گھر جي ڪم جو تجزيو
مان ضرور خوش آهيان ته اهڙا ماڻهو آهن جيڪي PD ڪندا آهن ۽ ان بابت ڳالهائيندا آهن. هي ٿڌو آهي! مون کي جيترو ٿي سگهي پڪ آهي ته علم کي مضبوط ڪرڻ کان سواءِ صرف پڙهڻ هڪ رستو آهي ڪٿي به نه. تنهن ڪري، هرڪو جيڪو ڪيو يا ڪرڻ جي ڪوشش ڪئي - احترام. اچو ته توهان کي ڪمن جا شرط ياد ڏياريان:- HAVING آپريٽر کي سمجھو ۽ اسان جي مثال مان ٽيبل لاءِ مثال سوال لکو. جيڪڏهن توهان کي ڪجهه فيلڊ يا وڌيڪ قدر شامل ڪرڻ جي ضرورت آهي انهي کي وڌيڪ واضح ڪرڻ لاء، انهن کي شامل ڪريو. جيڪڏهن ڪو چاهي ٿو ته، پنهنجو مثالي حل تبصرن ۾ لکو- پوءِ جيڪڏهن مون وٽ وقت هجي ته مان به ان کي چيڪ ڪري سگهان ٿو.
- UI ذريعي ڊيٽابيس سان ڪم ڪرڻ لاءِ MySQL Workbench انسٽال ڪريو. مان سمجهان ٿو ته اسان وٽ اڳ ۾ ئي ڪافي مشق آهي ڪنسول کان ڪم ڪرڻ. ڊيٽابيس سان ڳنڍيو. جيڪڏهن توهان ڊيٽابيس سان ڪم ڪرڻ لاءِ ٻيو ڪجهه استعمال ڪريو ٿا، آزاد محسوس ڪريو هن ڪم کي ڇڏڻ لاءِ. هتي ۽ اڳتي آئون صرف MySQL Workbench استعمال ڪندس.
- اسان جي ڊيٽا استعمال ڪندي وصولي لاءِ درخواستون لکو:
- ننڍڙو / سڀ کان وڌيڪ آبادي وارو ملڪ؛
- ملڪ ۾ رهندڙن جو سراسري تعداد؛
- انهن ملڪن ۾ رهندڙن جو سراسري تعداد جن جا نالا "a" ۾ ختم ٿين ٿا؛
- چئن ملين کان وڌيڪ جي آبادي سان ملڪن جو تعداد؛
- آبادي جي گھٽتائي سان ملڪن کي ترتيب ڏيو؛
- ملڪ کي قدرتي ترتيب ۾ نالن سان ترتيب ڏيو.
اچو ته HAVING بابت ڳالهايون
هينگ آپريٽر کي ڄاڻڻ توهان کي هڪ کان وڌيڪ انٽرويو پاس ڪرڻ ۾ مدد ڪري سگهي ٿي جتي SQL مسئلا هوندا. تنهن ڪري، ان کي سمجهڻ تمام ضروري آهي. بس ائين ٿئي ٿو ته توهان ڪمن جي مجموعي لاءِ حالتون استعمال نٿا ڪري سگهو (SUM, MIN, MAX, AVG). ان کان علاوه، HAVING استعمال ڪيو ويندو آهي فيلڊز لاءِ جيڪي گروپ ٿيل آهن. هن جو ڇا مطلب آهي؟ مثال طور، جيڪڏهن اسان انهن ملڪن کي حاصل ڪرڻ چاهيون ٿا جتي شهرن ۾ رهندڙن جو سراسري تعداد 50,000 کان وڌيڪ آهي، اسان HAVING استعمال ڪرڻ کان سواء نٿا ڪري سگهون. جيئن ته مان سمجهان ٿو، اهو ڪيو ويو آهي ڇاڪاڻ ته مجموعو ٿئي ٿو جڏهن WHERE بيان تي عمل ڪيو ويو آهي ۽ ان ۾ مجموعي قدر شامل ڪرڻ ناممڪن آهي جيڪو بعد ۾ حساب ڪيو ويندو. جيتوڻيڪ اڃا تائين منهنجي راءِ سمجھ ۾ گهڻو اضافو نه ڪيو آهي، توهان صرف ان کي حقيقت طور قبول ڪري سگهو ٿا ۽ ان سان گڏ وڃو. پروگرامنگ ۾، اهو اڪثر ٿئي ٿو ته جيڪڏهن ڪا شيء هڪ لمحي ۾ واضح ناهي، ان جو مطلب اهو ٿي سگهي ٿو ته دماغ اڃا تائين هضم نه ڪيو آهي. هن سوچ سان سمهڻ، ۽ ايندڙ ڏينهن هر شيء واضح ٿي ويندي.MySQL Workbench انسٽال ڪرڻ
هتي ۽ وڌيڪ آئون استعمال ڪندس Workbench سوالن لاءِ. مان توهان کي ڏيکاريندس جيڪو توهان کي انسٽال ڪرڻ ۽ ڊيٽابيس سان ڪنيڪشن ٺاهڻ جي ضرورت آهي. هي هڪ پراڊڪٽ آهي Oracle کان، تنهنڪري توهان کي صرف انهن جي ويب سائيٽ تي وڃڻ جي ضرورت آهي ۽ جيڪو توهان چاهيو ٿا اهو نسخو ۽ آپريٽنگ سسٽم چونڊيو. هن کي ڪرڻ لاء، هن لنڪ تي عمل ڪريو : هتي توهان چونڊي سگهو ٿا بلڪل آپريٽنگ سسٽم جنهن جي توهان کي ضرورت آهي. ڪلڪ ڪريو ڊائون لوڊ ، پر ڊائون لوڊ ڪرڻ جي بدران اسان کي هي ونڊو نظر ايندي: وڃايو نه وڃايو، بس بٽڻ کي ڳوليو جنهن کي سڏيو ويندو آهي نه مهرباني، بس منهنجي ڊائون لوڊ شروع ڪريو ، ۽ ڊائون لوڊ شروع ٿي ويندي. اهي ائين ڇو ڪري رهيا آهن؟ ٿي سگهي ٿو، انهي ڪري ته وڌيڪ ماڻهو انهن سان گڏ رجسٽرڊ ڪن، اهو اسان لاء اهم ناهي. ڪامياب ڊائون لوڊ ڪرڻ کان پوء، انسٽاليشن فائل کي هلائي. MacOS تي اهو ڏسڻ ۾ اچي ٿو: بس آئڪن کي ڇڪيو ۽ اهو ئي آهي، انسٽاليشن مڪمل ٿي وئي آهي. ايترو ڏکيو ناهي جيترو خود MySQL انسٽال ڪرڻ، صحيح؟ يا اسان ان کي استعمال ڪيو آهي ۽ وڌيڪ تجربيڪار ٿي چڪا آهيون؛) هن ڪم جو ٻيو حصو اسان جي ڊيٽابيس سان ڪنيڪشن قائم ڪرڻ آهي. ان لاءِ ڪهڙي ضرورت آهي؟ MySQL ڪنيڪشن جي اڳيان پلس سائن تي ڪلڪ ڪريو: ونڊو ۾ جيڪو ظاهر ٿئي ٿو، ضروري ڊيٽا داخل ڪريو:- ڪنيڪشن جو نالو - اسان جي ڪنيڪشن جو نالو. نالا لکو جيڪي ممڪن حد تائين واضح هجن ته جيئن بعد ۾ سڃاڻپ ۾ ڪو مسئلو نه اچي. مان هن ڪنيڪشن جو نالو ڏيان ٿو JRTB_DB ؛
- ميزبان نالو - اڳ ۾ ئي مقرر ڪيو ويندو مقامي 127.0.0.1 (اڪا localhost). اسان جي حالت ۾، ڪا به شيء تبديل ڪرڻ جي ضرورت ناهي، ڇاڪاڻ ته ڊيٽابيس ڪمپيوٽر تي نصب ٿيل آهي، پر جيڪڏهن ڊيٽابيس ڪنهن ٻئي هنڌ آهي، پوء ميزبان (مشين جو ip جنهن تي ڊيٽابيس هلندي آهي) مطابق تبديل ٿيڻ جي ضرورت آهي؛
- يوزر نالو - جيڪڏھن ضروري ھجي ته توھان پنھنجو استعمال ڪندڙ به بيان ڪري سگھو ٿا. جيڪڏھن توھان ھن چاٻي ۾ ڪجھ به شامل نه ڪيو آھي، ان کي تبديل نه ڪيو؛
- پاسورڊ - ڪلڪ ڪريو اسٽور ڪيچين ۾ ۽ بلڪل سيٽ ڪريو پاسورڊ جيڪو توهان پنهنجي لاءِ سيٽ ڪيو. مون سڀ ڪجھ سادو ڇڏي ڏنو - روٽ .
GO TO FULL VERSION