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

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

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

گھر جي ڪم جي جانچ ڪندي

"Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 3 - 2هر ڪنهن کي وڏي عزت جنهن ڪاميابيءَ سان ڪم مڪمل ڪيو. هن جو مطلب آهي ته توهان سمجھو ٿا ته صرف توهان کي هن جي ضرورت آهي ۽ اهو صرف توهان جي مدد ڪري ٿو. انهن لاءِ جن منهنجي ڪم کي نظرانداز ڪيو آهي، آئون توهان کي اها شرط ياد ڏياريان:
  1. توھان کي ھڪڙي پرائمري ڪي (PRIMARY KEY) شامل ڪرڻ جي ضرورت آھي ID فيلڊ مان ملڪ جي ٽيبل اسڪيما ۾.
  2. ملڪ جي ٽيبل تي ٻيو ملڪ شامل ڪريو - مالدووا.
  3. پوئين آرٽيڪل جي اسڪيم موجب، هڪ ٽيبل شهر ٺاهيو، جنهن ۾ بيان ڪيل سڀني شعبن تي مشتمل هوندو. فيلڊ جا نالا هن ريت هوندا: id، name، country_id، آبادي.
  4. شهر جي ٽيبل تي پرائمري ڪيچ شامل ڪريو.
  5. شهر جي ٽيبل تي هڪ غير ملڪي چيڪ شامل ڪريو.
شروع ڪرڻ لاءِ، اچو ته استعمال ڪريون پوئين مضمون جو پھريون حصو ۽ ڏانھن وڃو ڊيٽابيس ٽرمينل.

پرائمري ڪيچ شامل ڪرڻ

توھان ٻن طريقن سان ھڪڙي پرائمري ڪي (PRIMARY KEY) شامل ڪري سگھو ٿا: ٽيبل ٺاھڻ وقت، يا ٺاھڻ کان پوءِ، ALTER TABLE استعمال ڪندي.

ٽيبل ٺاھڻ دوران پرائمري ڪيچ

جيئن ته اسان اڳ ۾ ئي هڪ ٽيبل ٺاهي ڇڏيو آهي، ۽ ان کي حذف ڪرڻ کان سواءِ اسان هن طريقي کي هن ڊيٽابيس ۾ ڏيکاري نه سگهنداسين، اسان صرف هڪ عارضي ٽيسٽ ڊيٽابيس ٺاهينداسين جنهن ۾ اسان سڀ ڪجهه ڪنداسين. اچو ته ھيٺ ڏنل حڪم داخل ڪريو:
  • ھڪڙو نئون ڊيٽابيس ٺاھيو:

    $CREATE DATABASE ٽيسٽ؛

  • ھڪڙي ٽيبل ٺاھيو ھڪڙي بنيادي ڪي شامل ڪندي:

    $ CREATE TABLE ملڪ (id INT، نالو VARCHAR(30)، پرائمري ڪيئي (id))؛

عام طور تي، ڪجھ به پيچيده ناهي. متغيرن کي بيان ڪرڻ کان پوء، هيٺيون حصو PRIMARY KEY (id) شامل ڪيو ويو آهي ، جتي فيلڊ جو نالو جيڪو پرائمري ڪيئي هوندو قوس ۾ پاس ڪيو ويندو آهي. ۽ اچو ته ڏسو ڪيئن ٽيبل اسڪيما تبديل ٿي وئي آهي: $ DESC ملڪ؛ "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 3 - 3جئين توهان ڏسي سگهو ٿا، قيمت پي آر آئي آئي ڊي رڪارڊ لاء اهم فيلڊ ۾ ظاهر ٿيو آهي .

ٽيبل ٺاھڻ کان پوءِ پرائمري ڪنجي

جيئن مون اڳ ۾ چيو آهي، ٽيبل ٺاهڻ کان پوءِ پهرين ڪنجي کي ALTER TABLE استعمال ڪندي تفويض ڪري سگهجي ٿو . اسان هي مثال هلنداسين اسان جي شهرن جي ڊيٽابيس ۾ :
  • اچو ته اسان جي ڊيٽابيس ڏانهن وڃو ٽيسٽ مان:

    $USE شهر؛

  • اچو ته چيڪ ڪريو ته اسان ضرور اسان جي ڊيٽابيس ۾ آهيون (اتي هڪ ٻيو فيلڊ هجڻ گهرجي - آبادي). ائين ڪرڻ لاءِ اسين لکون ٿا:

    $ DESC آبادي؛

  • سڀ ڪجهه صحيح آهي، ٽيبل اسان جي آهي. اچو ته هيٺيون لکون:

    $ ALTER ٽيبل ملڪ شامل ڪريو پرائمري ڪيئي (id)؛

  • ۽ ان کي فوري طور تي حڪم سان چيڪ ڪريو:

    $DESC ملڪ؛

"Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 3 - 4جئين توهان تصوير مان ڏسي سگهو ٿا، هر شيء صحيح آهي، پي آر آئي قيمت بلڪل صحيح آهي جتي اهو هجڻ گهرجي. رستي جي ذريعي، اسان هڪ ٽيسٽ ڊيٽابيس سان ڪم ڪيو. ھاڻي اسان کي ان کي ختم ڪرڻ جي ضرورت آھي: اسان کي ڇو سرور کي ختم ڪرڻ جي ضرورت آھي، صحيح؟ ائين ڪرڻ لاءِ، اسان استعمال ڪريون ٿا ڪافي معروف حڪم: $ DROP DATABASE test;"Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 3 - 5

مالدووا شامل ڪرڻ

پهرين اسان کي اهو فيصلو ڪرڻو آهي ته اسان ڇا رڪارڊ ڪنداسين. اسان جي ايندڙ آئي ڊي 4 هوندي. نالو هوندو مولدووا، ۽ ان جي آبادي 3550900 آهي. ان ڪري، اسان INSERT INTO ڪمانڊ تي عمل ڪريون ٿا جيڪو اسان اڳ ۾ ئي ڄاڻون ٿا: $ INSERT INTO ملڪ VALUES (4, 'Moldova', 3550900); ۽ اسان چيڪ ڪريون ٿا ته ڇا هي قيمت بلڪل ڊيٽابيس ۾ آهي: $ SELECT * ملڪ کان جتي id = 4؛ "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 3 - 6ڊيٽا جي درخواست ۾، مون فوري طور تي طئي ڪيو ته ڪهڙي فيلڊ ڳولهي ويندي، تنهنڪري اسان کي صرف هڪ رڪارڊ مليو، جيڪو اسان کي گهربل آهي.

شهرن جي ٽيبل ٺاهيو

ڊيٽابيس جي باري ۾ پهرين آرٽيڪل مان ڊراگرام استعمال ڪندي ، اسان ٽيبل بابت ضروري معلومات حاصل ڪندا آهيون. اھو ھيٺ ڏنل شعبن تي مشتمل ھوندو:
  • id - منفرد سڃاڻپ ڪندڙ؛
  • نالو - شهر جو نالو؛
  • country_id - ملڪ جي پرڏيهي چيڪ؛
  • آبادي- شهر جي آبادي.
اهو هر وقت هڪ منفرد ID لکڻ لاء ٿورو دٻاء آهي، ڇا توهان سوچيو ٿا؟ مان هن کي MySQL اختيارين ڏانهن ڇڏڻ چاهيان ٿو . ۽ اتي ھڪڙو طريقو آھي - خودڪار واڌارو . اسان کي هن کي ڊجيٽل فيلڊ ۾ شامل ڪرڻ جي ضرورت آهي، ۽ جيڪڏهن اسان واضح طور تي قدرن کي پاس نه ڪندا آهيون، MySQL پاڻ ID کي اڳئين هڪ جي مقابلي ۾ وڌائيندو. تنهن ڪري، ٽيبل ٺاهڻ هن طرح نظر ايندو: $ CREATE TABLE شهر ( id INT AUTO_INCREMENT، نالو VARCHAR(30)، ملڪ_id INT، آبادي INT، PRIMARY KEY (id))؛ اچو ته ٽيبل ڊاگرام تي نظر وجهون ته ڏسو ته ڇا سڀ ڪجھ صحيح طرح ڪيو ويو: $ DESC شهر؛ "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 3 - 7جيئن توهان ٽيبل ڊاگرام مان ڏسي سگهو ٿا، اسان وٽ آئي ڊي فيلڊ لاءِ هڪ نئين وضاحت آهي - auto_increment. تنهنڪري اسان سڀ ڪجهه صحيح ڪيو. اچو ته ڊيٽا کي مڪمل طور تي ترتيب ڏنل ٽيبل تي چيڪ ڪريو. هن کي ڪرڻ لاء، اسان ڪم جو آخري حصو ڪنداسين - پرڏيهي چيڪ.

شهرن ڏانهن هڪ غير ملڪي چيڪ شامل ڪريو

غير ملڪي چاٻي لاءِ ھي حڪم ھوندو: $ ALTER TABLE شھر ADD FOREIGN KEY (country_id) حوالو ملڪ(id)؛ ۽ اچو ته فوري طور تي چيڪ ڪريو ته ٽيبل اسڪيما سان ڇا غلط آهي: ڇا اهو هڪ ڪلاڪ جي دوران تبديل ٿي چڪو آهي؟ $DESC شهر؛ "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 3 - 8

بونس حصو. جاچڻ

مون ان کي ڪم ۾ شامل ڪرڻ وساري ڇڏيو - ڊيٽا ڀريو جيڪا پهرين حصي جي اسڪرين شاٽ ۾ هئي. مون کي وسري ويو، تنهنڪري هاڻي مان اهو پاڻ ڪندس. ۽ انھن لاءِ جيڪي دلچسپي رکن ٿا، توھان اھو پاڻ ڪري سگھو ٿا مون کان سواءِ ۽ پوءِ اسين چيڪ ڪنداسين ؛) اتي موجود ھئا Kharkov، Kyiv، Minsk، Odessa، Voronezh، ۽ اسين به شامل ڪنداسين چيسينو. پر هن ڀيري اسان IDs منتقل نه ڪنداسين، اسان انهن کي ڇڏي ڏينداسين: $ INSERT INTO شهر (نالو، ملڪ_id، آبادي) VALUES ('Kharkov', 1, 1443000), ('Kyiv', 1, 3703100), ('Minsk' ، 3، 2545500)، ('Odessa'، 1، 1017699)، ('Voronezh'، 2، 1058261)، ('Kishinev'، 4، 695400)؛ جئين توهان ڏسي سگهو ٿا، توهان هڪ INSERT INTO حڪم استعمال ڪندي هڪ ئي وقت ۾ ڪيترائي داخل ڪري سگهو ٿا. هڪ آسان شيء، ياد رکو) ۽ فوري طور تي ڏسو ته ٽيبل ۾ ڇا آهي: $ SELECT * شهر کان؛ "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 3 - 9AUTO_INCREMENT - بلڪل ائين ڪم ڪيو جيئن اسان چاهيون ٿا. ID فائلون سڀ ڀرجي ويون آهن، جيتوڻيڪ اسان انهن کي جمع نه ڪيو آهي. هڪ غير ملڪي چاٻي هڪ منحصر شيء آهي. چيڪ ڪرڻ لاء ته ڇا اهو صحيح طريقي سان ڪم ڪري ٿو، توهان ڪوشش ڪري سگهو ٿا هڪ غير ملڪي ڪيجي جيڪا غير ملڪي ٽيبل ۾ موجود ناهي. اچو ته اسان اهو فيصلو ڪريون ته id = 5 قزاقستان آهي. پر حقيقت ۾ اهو ملڪن جي جدول ۾ ناهي. ۽ چيڪ ڪرڻ لاءِ ته ڊيٽابيس قسم کڻندو، شهر شامل ڪريو - آستانه: $ INSERT INTO شهر (نالو، ملڪ_id، آبادي) VALUES ('Astana', 5, 1136156); ۽ اسان کي قدرتي طور تي غلطي ملي ٿي: "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 3 - 10هاڻي غير ملڪي چيڪ يقيني بڻائي ٿو ته اسان هڪ ملڪ کي شهر کي تفويض ڪرڻ جي ڪوشش نه ڪندا آهيون جيڪو اسان جي ڊيٽابيس ۾ ناهي. هوم ورڪ جو هي حصو مڪمل سمجهي سگهجي ٿو - نئين ڏانهن اڳتي :)

چونڊيو بيان

خير، هر شيء ايترو خوفناڪ نه لڳي، صحيح؟ مان هڪ ڀيرو ٻيهر نوٽ ڪرڻ چاهيان ٿو ته جاوا ڊولپرز لاءِ، ڊيٽابيس جي ڄاڻ لازمي آهي. ڊيٽابيس کان سواءِ توهان ڪٿي به نٿا وڃي سگهو. ها، مان پهريان ئي هڪ درخواست لکڻ شروع ڪرڻ چاهيان ٿو، مان متفق آهيان. پر اهو ضروري آهي. تنهنڪري اسان هن طريقي سان جاري رکون ٿا. SELECT بيان کي استعمال ڪندي، اسان ڊيٽابيس مان ڊيٽا حاصل ڪندا آهيون. اھو آھي، اھو ھڪڙو عام ڊي ايم ايل آپريشن آھي (ڇا توھان اڳ ۾ ئي وساري چڪا آھيو ته اھو ڇا آھي؟...))) مضمونن کي ٻيهر پڙھو FORE). تعلقي ڊيٽابيس جا ڪهڙا فائدا آهن؟ انهن وٽ ڊيٽا کي گڏ ڪرڻ ۽ ٻيهر حاصل ڪرڻ لاءِ وڏي ڪارڪردگي آهي. اھو اھو آھي جيڪو SELECT بيان لاء استعمال ڪيو ويندو آھي. اهو لڳي ٿو ته ان جي باري ۾ ڪجھ به پيچيده نه ٿي سگهي، صحيح؟ پر اهو ظاهر ٿئي ٿو ته اڃا گهڻو ڪجهه سمجهڻ آهي) اهو اسان لاءِ ضروري آهي ته اسان بنيادي ڳالهين کي سمجھون جن مان اسان ٺاهي سگهون ٿا. SELECT بيان سان آسان ترين سوال هڪ ٽيبل مان سڀني ڊيٽا کي چونڊڻ آهي. مون کي وڪيءَ مان ڏنل تفصيل پسند آيو ته اصل ۾ آپريٽرن کي SELECT سوال ۾ ڪهڙي ترتيب ڏيڻ گهرجي، تنهنڪري مان ان کي هتي نقل ڪندس:
SELECT
  [DISTINCT | DISTINCTROW | ALL]
  select_expression,...
FROM table_references
[WHERE where_definition]
[GROUP BY {unsigned_integer | col_name | formula}]
[HAVING where_definition]
[ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC], ...]
هتي توهان ڏسي سگهو ٿا ته توهان نه ٿا رکي سگهو GROUP BY آپريٽر پهرين ۽ پوءِ WHERE آپريٽر. انهي کي ياد رکڻ جي ضرورت آهي ته جيئن بعد ۾ غلطين جي ڪا به ناراضگي نه ٿئي جيڪا واضح ناهي ته اهي ڪٿان اچن ٿيون. $چونڊيو * شهر مان؛ "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 3 - 11پر سڀني ڊيٽا کي ختم ڪرڻ واضح طور تي اسان لاء مزو نه آهي. اهو بلڪل ساڳيو آهي جيڪڏهن اسان هڪ خوردبيني سان ناخن کي هٽائڻ چاهيون ٿا [1] , [2] . جيئن ته ڊيٽابيس فلٽرنگ، ترتيب ڏيڻ ۽ مجموعي عملن کي جاوا ڪوڊ جي ڀيٽ ۾ تمام تيز ڪري ٿو، اهو بهتر آهي ته هن معاملي کي ڊيٽابيس ڏانهن ڇڏي ڏيو. تنهن ڪري، ڪمن کي پيچيدگي ڪندي اسان نئين ڪارڪردگي کولينداسين.

WHERE پيٽرولر

چونڊ کي فلٽر ڪرڻ لاءِ، جتي لفظ استعمال ٿيندو آهي . ان جي تشريح هن ريت ٿيڻ گهرجي: SELECT * FROM tablename (سڀني شعبن کي چونڊيو ٽيبل جي نالي مان) WHERE talbe_row = 1 (جتي رڪارڊ ۾ table_row فيلڊ 1 جي برابر آهي). اهو نوٽ ڪرڻ ضروري آهي ته سوال ۾ لفظن جي ترتيب اهم آهي. توھان لکي نٿا سگھو WHERE a =1 FROM table_name SELECT *. روسي ٻوليءَ لاءِ اهو ٺيڪ آهي، ۽ ڪجهه لاءِ اهو شايد اهڙي گندگي وانگر نه لڳي، پر SQL لاءِ اهو ناقابل قبول آهي. اسان ھيٺ ڏنل سوال لکون ٿا: $ SELECT * FROM city WHERE country_id = 1; "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 3 - 12۽ اسان يوڪريني شهرن کي چونڊيو. خراب ناهي، صحيح؟ ڇا جيڪڏهن اسان نه رڳو يوڪريني، پر بيلاروسي پڻ چاهيون ٿا؟ ھن مقصد لاءِ، اسان انھن قدرن جو مجموعو لسٽ ڪري سگھون ٿا جيڪي فيلڊ وٺي سگھن ٿا: $SELECT * FROM city WHERE country_id IN(1, 3); "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 3 - 13۽ اسان وٽ اڳ ۾ ئي جواب ۾ ٻن ملڪن جا شهر آهن. ڇا جيڪڏهن فلٽر ڪرڻ لاء ڪيترائي شرط آهن؟ اچو ته چئون ته ٻه ڪروڙ کان وڌيڪ آبادي وارا شهر چاهيون ٿا؟ ائين ڪرڻ لاءِ، لفظ OR ۽ AND استعمال ڪريو : $ SELECT * FROM city WHERE country_id IN (1, 3) ۽ آبادي > 2000000; "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 3 - 14عظيم، پر ڇا جيڪڏهن اسان کي هڪ وڌيڪ شرط شامل ڪرڻ جي ضرورت آهي - هڪ باقاعده اظهار ذريعي نالن کي ڳولڻ لاء (آئون هتي باقاعده اظهار بيان نه ڪندس: هتي هڪ شخص آهي جنهن اهو "مختصر" 4 حصن ۾ ڪيو )؟ مثال طور، اسان کي ياد آهي ته شهر کي ڪيئن اسپيل ڪجي، پر مڪمل طور تي نه... ائين ڪرڻ لاءِ، توهان فلٽرنگ ايڪسپريس ۾ LIKE لفظ شامل ڪري سگهو ٿا : $ SELECT * FROM city where country_id IN (1, 3) ۽ آبادي > 2000000 يا نالو "%hark%" وانگر؛ "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 3 - 15۽ اهڙي طرح اسان کي به Kharkov ملي ويو. نتيجي طور، اسان اهو چئي سگهون ٿا ته اسان جي ڳولا تمام سٺي هئي. پر مان ترتيب ڏيڻ چاهيان ٿو ID جي لحاظ کان نه، پر آبادي جي لحاظ کان، پر ڪيئن؟ ها بلڪل سادو...

آرڊر بائي پيراميٽر

ORDER BY استعمال ڪندي، اسان مخصوص فيلڊ ذريعي حاصل ڪيل رڪارڊ کي ترتيب ڏئي سگھون ٿا. اهو ٻنهي نمبرن ۽ تارن کي ترتيب ڏئي ٿو. اچو ته اڳئين سوال کي وڌايون، آبادي جي لحاظ کان ترتيب ڏيو، آبادي جي لحاظ کان ترتيب ڏيو: $ SELECT * FROM city WHERE country_id IN (1, 3) ۽ آبادي > 2000000 يا نالو وانگر “%hark%” آبادي جي لحاظ کان ترتيب ڏيو؛ "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 3 - 16جيئن اسان ڏسي سگهون ٿا، ترتيب ڏنل قدرتي ترتيب ۾، يعني، چڙهندڙ ترتيب ۾. ڇا جيڪڏهن اسان مخالف چاهيون ٿا؟ ائين ڪرڻ لاءِ، توھان کي لفظ شامل ڪرڻ جي ضرورت آھي DESC: $ SELECT * FROM city where country_id IN (1, 3) ۽ آبادي > 2000000 يا نالو وانگر "%hark%" ORDER BY DESC آبادي؛ "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 3 - 17هاڻي ترتيب آبادي جي گهٽتائي تي ٻڌل آهي. ۽ ڊيٽابيس اهو تمام جلدي ڪري ٿو: ڪو به Collections.sort اتي مقابلو نٿو ڪري سگهجي. ھاڻي اچو ته ترتيب ڏيو قطار جي لحاظ سان، نالي سان ريورس آرڊر ۾: $ SELECT * شهر کان ڪٿي ملڪ_id IN (1, 3) ۽ آبادي > 2000000 يا نالو پسند ڪريو “%hark%” ORDER BY name DESC؛"Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 3 - 18

GROUP BY پيرا ميٽر

مخصوص شعبن طرفان رڪارڊ گروپ ڪرڻ لاء استعمال ڪيو ويو. هي عام طور تي مجموعي افعال کي استعمال ڪرڻ جي ضرورت آهي... مجموعي افعال ڇا آهن؟)) اهو سمجھ ۾ اچي ٿو ته ڪجهه فيلڊن جي گروهه ۾ جيڪڏهن اهي مختلف رڪارڊ لاء ساڳيا آهن. اچو ته ڏسو ته اسان جي مثال کي استعمال ڪندي هن جو مطلب ڇا آهي. اچو ته چون ٿا ته شهرن ۾ غير ملڪي چابيون آهن - ملڪ جي سڃاڻپ. تنهن ڪري، ID ساڳئي ملڪ جي شهرن لاءِ ساڳي آهي. تنهن ڪري، توهان وٺي سگهو ٿا ۽ انهن طرفان رڪارڊ گروپ ڪري سگهو ٿا: $ SELECT country_id، COUNT(*) FROM city GROUP BY country_id؛ "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 3 - 19پر مجموعي ڪمن کان سواءِ اهو ٿورڙو ڪمزور نظر اچي ٿو، توهان کي تسليم ڪرڻ گهرجي. تنهن ڪري، اچو ته ڪجھ سڀ کان وڌيڪ عام افعال کي ڏسو:
  • COUNT - رڪارڊن جو تعداد، استعمال ڪري سگھجي ٿو بغير گروپن جي، استعمال ڪري سگھجي ٿو COUNT(*) . ڪجهه فيلڊ جي گروهه جي صورت ۾ - COUNT(grouped_field)؛
  • MAX - هڪ مخصوص فيلڊ لاء وڌ ۾ وڌ قدر ڳولي ٿو؛
  • MIN - هڪ مخصوص فيلڊ لاءِ گهٽ ۾ گهٽ قيمت ڳولي ٿو؛
  • SUM - هڪ مخصوص فيلڊ لاءِ رقم ڳولي ٿو؛
  • AVG - سراسري قدر ڳولي ٿو.
عام طور تي، اهي فنڪشن بغير گروپن جي استعمال ڪري سگھجن ٿيون، صرف پوء صرف هڪ فيلڊ ڏيکاري ويندي. اچو ته ڪوشش ڪريون انھن کي پنھنجي شھر جي آبادي لاءِ: $ SELECT COUNT(*) from city; "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 3 - 20هنن جيڪو ڪجهه گهريو سو مليو. صرف رڪارڊ جو تعداد. ڪڏهن ڪڏهن هي مفيد آهي. مثال طور، جيڪڏهن اسان کي ڪنهن خاص ليکڪ جي مضمونن جو تعداد معلوم ڪرڻ جي ضرورت آهي. انهن کي ڊيٽابيس مان ڪڍڻ ۽ انهن کي ڳڻڻ جي ڪا ضرورت ناهي. توھان صرف استعمال ڪري سگھو ٿا COUNT(). $ چونڊيو AVG (آبادي) شهر کان؛ "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 3 - 21$ SELECT MIN (آبادي) شهر کان؛ ۽ اهو آهي جتي گروهه قوت ۾ اچي ٿو. مثال طور، ڪم ملڪ ۾ سڀ کان ننڍو شهر حاصل ڪرڻ آهي. اڳ ۾ ئي خبر آهي ته اهو ڪيئن ڪجي؟ پاڻ ڪوشش ڪريو، پوءِ ڏسو: $ SELECT country_id as Country, MIN(population) from city WHERE GROUP BY country_id؛ "Java-проект от А до Я": разбираем базы данных и язык SQL. Часть 3 - 22هينئر تائين اسان صرف ملڪ جي سڃاڻپ ڏسون ٿا، پر اهو فرق نٿو پوي - ايندڙ وقت اسان سڀ ڪجهه ڪنداسين. ۽ پوءِ اڳ ۾ ئي ھڪڙو نتيجو آھي، ۽ اسان اھو حاصل ڪيو جيڪو اسان چاهيون ٿا - ملڪ جو ننڍڙو شھر ID = 1 سان. باقي ڪم ساڳيا ھوندا. اهو نوٽ ڪرڻ ضروري آهي ته * ذريعي سڀني شعبن کي ختم ڪرڻ جڏهن گروپنگ ۽ ايگريگيشن استعمال ڪندي ڪم نه ڪندو! ان باري ۾ سوچو ؛)

گهر جو ڪم

پوئين مضمونن جي نتيجن جي بنياد تي، اهو واضح آهي ته هوم ورڪ ڪيو پيو وڃي، تنهنڪري اچو ته جاري رکون) ها، هرڪو جيڪو هوم ورڪ ڪري ٿو تبصرن ۾ "+" رکڻ جاري رکندو. اهو منهنجي لاءِ ضروري آهي ته هوم ورڪ جو موضوع توهان لاءِ دلچسپ هجي، ان ڪري مان ان کي مستقبل ۾ به جاري رکان. ها، مان توهان جا رايا باقاعده پڙهندو آهيان. يقينن، آئون اڪثر جواب ڏيان ٿو. مون ڏٺو ته هنن وڌيڪ ڏکيو SQL مسئلا ڏيڻ لاءِ چيو. جيستائين اسان شامل ٿيڻ نه سکندا آهيون، اتي ڪو به دلچسپ مسئلو نه هوندو، تنهنڪري اتي اهي هوندا جيڪي مون کي وڌيڪ مواد جي ضرورت هوندي.

ڪم:

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

نتيجو

اڄ اسان تفصيل سان بحث ڪيو هوم ورڪ جي آخري سبق کان. ان کان علاوه، مان ان کي اهم سمجهان ٿو ٻنهي لاءِ جن اهو نه ڪيو ۽ انهن لاءِ جن ڪيو. اڳوڻي لاء، اهو هڪ موقعو آهي جواب ڳولڻ جو، ۽ بعد ۾، توهان جي نتيجن سان مقابلو ڪرڻ لاء. سبسڪرائب ڪريو منهنجي GitHub اڪائونٽ تي پروجيڪٽ ۾ تبديلين تي اپڊيٽ رهڻ لاءِ. مان اتي پوري ڪوڊ بيس کي برقرار رکندس. هن تنظيم ۾ سڀ ڪجهه ٿيندو . اڳيون، اسان SELECT بيان تي بحث ڪيو. هو اسان لاءِ سڀ کان اهم آهي. اهو ان جي ذريعي آهي ته ڊيٽا جي سڀني درخواستن ذريعي ويندا، ۽ اسان کي ان کي سمجهڻ گهرجي. سڀ کان اهم شيء اهو آهي ته ترتيب کي ياد رکڻ لاء جنهن ۾ پيراگراف شامل ڪيا ويا آهن (WHERE، ORDER BY، GROUP BY، وغيره). ها، مون اهو سڀ ڪجهه نه ٻڌايو جيڪو ممڪن هو، پر مون پنهنجي لاءِ اهڙو مقصد مقرر نه ڪيو. ها، مان ڄاڻان ٿو ته توهان اڳ ۾ ئي هڪ درخواست لکڻ جا خواهشمند آهيو. صبر ڪر، اهو سڀ ڪجهه توهان جي ضرورت آهي. ٻئي منصوبي لاءِ ۽ توهان جي پيشه ورانه ترقي لاءِ. جڏهن توهان انتظار ڪريو، پڪ ڪريو ته Git اڳ ۾ ئي توهان کي واقف آهي. مان ان کي ڊفالٽ طور استعمال ڪندس، هڪ معروف اوزار طور. پڙهڻ لاءِ سڀني جي مهرباني. ايندڙ مضمون ۾ اسين ڊيٽابيس ڪنيڪشن ۽ شامل ٿيڻ بابت ڳالهائينداسين. اھو آھي جتي سٺا ڪم ٿيندا))

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

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