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.
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;
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; Ing 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))
Ing kasus iki, kabeh bakal persis padha. Bentenipun mung sing ngurutake bakal mbalikke - iku kabeh. Mulane, aku mung nulis panjaluk:
$ SELECT country_id, SUM(populasi) FROM kutha GROUP BY country_id ORDER BY SUM(populasi) LIMIT 1;
$ PILIH * Saka negara ORDER BY LIMIT populasi 1; Lan ndeleng asil dhewe!
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; Iku prasaja ing kene: kita nggunakake fungsi AVG lan nglumpukake cathetan kutha miturut negara.
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; Apa 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.
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.
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;
Ing kene kawruh babagan tatanan alam bakal migunani. Wiwit iku standar, iku Piece saka jajan kanggo kita: $ PILIH * Saka negara ORDER BY jeneng;
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:- 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.
- 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.
- Tulis panjalukan kanggo kuitansi nggunakake data kita:
- negara paling cilik / paling padhet;
- jumlah rata-rata pedunung ing negara;
- jumlah rata-rata pedunung ing negara sing jenenge diakhiri "a";
- jumlah negara kanthi populasi luwih saka patang yuta;
- ngurutake negara kanthi ngurangi jumlah penduduk;
- 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 : Ing kene sampeyan bisa milih persis sistem operasi sing dibutuhake. Klik Download , nanging tinimbang ngundhuh kita bakal weruh jendhela iki: Aja 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: Cukup 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: Ing 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 .
GO TO FULL VERSION