JavaRush /Blog Jawa /Random-JV /Kita nganalisa database lan basa SQL. (Part 4 - mriksa PR...

Kita nganalisa database lan basa SQL. (Part 4 - mriksa PR) - "Proyek Jawa saka A nganti Z"

Diterbitake ing grup
Artikel saka seri babagan nggawe proyek Jawa (pranala menyang materi liyane ana ing pungkasan). Tujuane kanggo nganalisa teknologi kunci, asile nulis bot telegram. Artikel sadurungé lan analisis peer ing basis data: 1 , 2 , 3 . Kanggo kabeh wong sing wis sabar lan sabar, kanggo kabeh sing wis melu aku ing artikel kaping papat - apik banget. Kaya sing dicritakake, sing mlaku bisa nguwasani dalan. Minggu iki artikel pungkasan babagan Database bakal dirilis, ing ngendi kita bakal ngomong babagan jinis hubungan lan gabung . Nanging sadurunge kita menehi hasil karo informasi anyar, ayo padha mriksa PR kita ... Aku pancene felt kaya guru. Aja nesu karo aku: Aku ora duwe pendidikan pedagogis, mesthine. Wiwit minggu kepungkur mriksa rinci saka remot kontrol njupuk munggah singa kang nuduhake materi, Aku mutusaké kanggo pamisah analisis peer lan review materi anyar dadi rong bagéan."Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Part 4 - mriksa PR - 1

Bener, analisis PR

Aku mesthi bungah yen ana wong sing nindakake PD lan ngomong babagan iki. Iki keren! Aku yakin manawa mung maca tanpa nggabungake kawruh minangka dalan sing ora ana. Mulane, saben wong sing nindakake utawa nyoba kanggo nindakake - ngormati. Ayo kula ngelingake sampeyan kahanan tugas:
  1. Ngerti operator HAVING lan nulis conto query kanggo tabel saka conto kita. Yen sampeyan kudu nambah sawetara kolom utawa luwih akeh nilai supaya luwih jelas, tambahake. Yen ana sing pengin, tulis conto solusi sampeyan ing komentar - supaya aku uga bisa mriksa yen aku duwe wektu.
  2. Instal MySQL Workbench kanggo nggarap database liwat UI. Aku wis cukup latihan nggarap konsol. Nyambung menyang database. Yen sampeyan nggunakake liya kanggo nggarap basis data, aja lali nglewati tugas iki. Ing kene lan luwih aku bakal nggunakake mung MySQL Workbench.
  3. Tulis panjalukan kanggo kuitansi nggunakake data kita:
    1. negara paling cilik / paling padhet;
    2. jumlah rata-rata pedunung ing negara;
    3. jumlah rata-rata pedunung ing negara sing jenenge diakhiri "a";
    4. jumlah negara kanthi populasi luwih saka patang yuta;
    5. ngurutake negara kanthi ngurangi jumlah penduduk;
    6. urut negara miturut jeneng ing urutan alam.

Ayo dadi pirembagan bab HAVING

Ngerti operator Duwe bisa mbantu sampeyan ngliwati luwih saka siji wawancara sing bakal ana masalah SQL. Mulane, pangerten iku penting banget. Kedadeyan yen sampeyan ora bisa nggunakake kahanan kanggo nglumpukake fungsi (SUM, MIN, MAX, AVG). Kajaba iku, HAVING digunakake kanggo lapangan sing diklompokaké. Iki artine apa? Contone, yen kita pengin njaluk negara sing rata-rata jumlah penduduk ing kutha luwih saka 50.000 jiwa, kita ora bisa nindakake tanpa nggunakake HAVING. Nalika aku ngerti, iki rampung amarga agregasi kedadeyan sawise statement WHERE wis dieksekusi lan ora bisa nambah nilai agregasi sing bakal diwilang mengko. Sanajan nganti saiki panemuku ora nambah pangerten, sampeyan mung bisa nampa iki minangka kasunyatan lan tindakake. Ing program, asring kedadeyan yen ana sing ora jelas, bisa uga tegese otak durung nyerna. Turu karo pikiran iki, lan dina sabanjure kabeh bakal dadi luwih jelas.

Nginstal MySQL Workbench

Ing kene lan luwih aku bakal nggunakake Workbench kanggo pitakon. Aku bakal nuduhake sampeyan apa sing kudu diinstal lan nggawe sambungan menyang database. Iki minangka produk saka Oracle, dadi sampeyan mung kudu pindhah menyang situs web lan pilih versi lan sistem operasi sing dikarepake. Kanggo nindakake iki, tindakake link iki : "Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Part 4 - mriksa PR - 2Ing kene sampeyan bisa milih persis sistem operasi sing dibutuhake. Klik Download , nanging tinimbang ngundhuh kita bakal weruh jendhela iki: "Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Part 4 - mriksa PR - 3Aja ilang, mung goleki tombol sing disebut Ora thanks, mung miwiti download sandi , lan download bakal diwiwiti. Yagene wong-wong mau padha nglakoni mangkono? Mbokmenawa, supaya luwih akeh wong sing ndhaptar, iki ora penting kanggo kita. Sawise download sukses, mbukak file instalasi. Ing MacOS katon kaya iki: "Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Part 4 - mriksa PR - 4Cukup seret lambang kasebut, instalasi wis rampung. Ora angel kaya nginstal MySQL dhewe, ta? Utawa kita wis biasa lan dadi luwih pengalaman ;) Pérangan kapindho saka tugas iki kanggo nggawe sambungan kanggo database kita. Apa sing dibutuhake kanggo iki? Klik tandha plus ing jejere MySQL Connections: "Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Part 4 - mriksa PR - 5Ing jendhela sing katon, ketik data sing dibutuhake:
  • Jeneng Sambungan - jeneng sambungan kita. Tulis jeneng sing paling cetha supaya ora ana masalah karo identifikasi mengko. Aku menehi sambungan iki jeneng JRTB_DB ;
  • Hostname - bakal wis disetel minangka lokal 127.0.0.1 (alias localhost). Ing kasus kita, ora ana sing kudu diowahi, amarga database wis diinstal ing komputer, nanging yen basis data ana ing papan liya, banjur host (ip saka mesin sing basis data lagi mlaku) kudu diganti;
  • Jeneng pangguna - sampeyan uga bisa nemtokake pangguna yen perlu. Yen sampeyan durung nambah apa-apa ing tombol iki, aja diganti;
  • Sandi - klik Simpen ing Keychain lan setel persis sandhi sing sampeyan aturake dhewe. Aku ninggalake kabeh prasaja - ROOT .
Kanggo mriksa apa sambungan bakal bisa, klik Test Connection : "Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Part 4 - mriksa PR - 6Ya, yen kabeh wis rampung kanthi bener, asil ora bakal suwe: "Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Part 4 - mriksa PR - 7Saiki kita duwe sambungan sing disimpen ing database, lan kita ora perlu nggawe sambungan lan isi. ing jeneng lan sandhi saben wektu. Lan rasa seneng iki bakal katon kaya iki: "Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Part 4 - mriksa PR - 8Kita pindhah menyang sambungan sing mentas digawe lan ndeleng jendhela panyuwunan. Kanggo mesthekake yen kabeh iku bener, ayo kang mriksa dhaftar database, pindhah menyang kita lan njaluk kabeh data bab kutha: "Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Part 4 - mriksa PR - 9Lan kene kita njaluk carte blanche kanggo apa kita kudu. Bagean pisanan tanggung jawab kanggo naskah sing kita lebokake. Sabanjure, ing Result Grid , kita ndeleng asil operasi pungkasan ing skrip. Lan Output Tindakan nuduhake dhaptar operasi lan asile. Bab sing migunani banget, aku arep ngandhani: kanthi bantuan sampeyan bisa ngawasi kacepetan eksekusi skrip tartamtu. Apa sebabe penting? Salah sawijining masalah sing paling umum ing kacepetan eksekusi tugas ing aplikasi yaiku kacepetan eksekusi query ing database. Ing kene sampeyan bisa mriksa kanthi cepet lan gampang kanthi tangan.

Kita nulis panjaluk sing dibutuhake

Kita mung duwe 7 panjalukan kanggo ngrampungake, ayo!

  1. Njaluk negara paling padhet. Ing kene sampeyan bisa kanthi licik lan njupuk sawetara rute:

  • Miturut tabel negara

Banjur kita mung kudu ngurutake pitakon miturut populasi lan njupuk mung siji rekaman. Kanggo nindakake iki, sampeyan kudu nambah operator LIMIT ing mburi script lan nemtokake jumlah sing dibutuhake: $ SELECT * FROM negara ORDER BY populasi DESC LIMIT 1;"Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Part 4 - mriksa PR - 10

  • Miturut tabel kutha

Kabeh luwih menarik ing kene, amarga panyuwunan bakal luwih rumit, nanging uga luwih menarik. Amarga kita isih ora ngerti babagan gabung, kita mung bisa njaluk ID negara: $ SELECT country_id, SUM(populasi) Saka kutha GROUP BY country_id ORDER BY SUM(populasi) DESC LIMIT 1; "Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Part 4 - mriksa PR - 11Ing kene kita nindakake perkara sing apik - kita ngumpulake jumlah populasi kabeh kutha sing dikenal ing saben negara, diurutake miturut jumlah iki lan njupuk unsur pisanan. Nah, iku apik? Aku seneng :D Sawise iki sampeyan langsung koyo guru pitakon ... (ora suwe, mesthi))

  1. Njaluk negara paling cilik. Ing kene sampeyan bisa pindhah kanthi licik lan njupuk sawetara rute

Ing kasus iki, kabeh bakal persis padha. Bentenipun mung sing ngurutake bakal mbalikke - iku kabeh. Mulane, aku mung nulis panjaluk:

  • Miturut tabel kutha

$ SELECT country_id, SUM(populasi) FROM kutha GROUP BY country_id ORDER BY SUM(populasi) LIMIT 1;

  • Miturut tabel negara

$ PILIH * Saka negara ORDER BY LIMIT populasi 1; Lan ndeleng asil dhewe!

  1. Jumlah rata-rata pedunung ing negara

Kene maneh specification technical piye wae ora akurat, kaya manager wis ditulis iku ... Apa aku mutusaké iki? Amarga iku ora cetha kang meja bisa ing. Nanging iki normal: ora ana tugas sing kabeh bakal langsung jelas lan bisa dingerteni. Mulane, sampeyan kudu maca tugas kasebut kanthi teliti, lan yen sampeyan duwe pitakonan, takon langsung! Bener, komentar. Nganggep data sing ana ing basis data, kita bakal nggoleki data saka kutha. Kanggo nindakake iki, tulis pitakon ing ngisor iki: $ SELECT country_id, AVG(populasi) FROM kutha GROUP BY country_id; "Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Part 4 - mriksa PR - 12Iku prasaja ing kene: kita nggunakake fungsi AVG lan nglumpukake cathetan kutha miturut negara.

  1. Jumlah rata-rata pedunung ing negara sing jenenge diakhiri "a"

Bakal ana owah-owahan tipis ing kene yen dijaluk. Kita kudu nambah nyaring miturut jeneng sadurunge nggawe klompok. Aku nindakake peer, kaya kabeh siswa, sadurunge nerbitake artikel iki, lan aku ngerti yen masalah iki ora bisa ditanggulangi tanpa gabung. Kenging punapa? Amarga saliyane KTP negara, kita uga kudu njaluk jenenge. Lan iki ora bisa ditindakake tanpa nggabungake rong tabel dadi siji rekaman. Mulane, aku bakal nindakake tugas iki, mesthi, nanging iki jambku ...))) Aku wanted kanggo teka munggah karo tugas nggunakake LIKE ing request ...) $ SELECT ci.country_id, AVG(ci.population ) Saka kutha ci INNER GABUNG negara co ON ci.country_id = co.id WHERE co.name LIKE "%a" GROUP Miturut country_id; "Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Part 4 - mriksa PR - 13Apa sing kedadeyan ing kene? Kaping pisanan, kita gabung karo cathetan saka tabel kutha lan negara kanthi nggunakake country_id kunci asing, disaring miturut jeneng negara supaya diakhiri "a," banjur diklompokaké miturut country_id.

  1. Jumlah negara kanthi populasi luwih saka patang yuta

Ing kene kita mung kudu nggunakake fungsi COUNT lan nambah nyaring populasi: $ SELECT COUNT(*) saka negara WHERE populasi > 4000000; Akibaté, kita ngerteni manawa ana 3 negara kasebut. Apa iki bener? Ya, mung Moldova sing ora lulus tonggak sejarah iki.

  1. Urut negara kanthi ngurangi jumlah penduduk

Kanggo nindakake iki, kita kudu nggunakake operator ORDER BY sing wis kita kenal. Nanging elinga yen kanthi standar ngurutake kanthi urutan alami. Kanggo nomer iki tegese diurutake ing urutan munggah, kanggo strings tegese iku diurutake wiwit saka karakter pisanan. Yen kita perlu ngurutake mudhun, kita kudu kuwalik saka alam: $ PILIH * Saka negara ORDER BY populasi DESC;"Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Part 4 - mriksa PR - 14

  1. Urut negara miturut jeneng ing urutan alam

Ing kene kawruh babagan tatanan alam bakal migunani. Wiwit iku standar, iku Piece saka jajan kanggo kita: $ PILIH * Saka negara ORDER BY jeneng;"Proyek Jawa saka A nganti Z": kita nganalisa database lan basa SQL.  Part 4 - mriksa PR - 15

Tinimbang output

Iku mung kedadeyan yen ukuran solusi peer bakal gedhe banget, mula kita bakal nggawe pangecualian: Aku nerbitake artikel iki kanthi mriksa, lan ing dina Jumuah aku bakal nerbitake materi anyar kanthi sambungan lan gabung. Matur nuwun kanggo kabeh sing wis maca. Nganti dina Jumuah!

Dhaptar kabeh materi ing seri kasebut ana ing wiwitan artikel iki.

Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION