JavaRush /Java Blog /Random-TL /Sinusuri namin ang mga database at ang wikang SQL. (Bahag...

Sinusuri namin ang mga database at ang wikang SQL. (Bahagi 2) - "Proyekto ng Java mula A hanggang Z"

Nai-publish sa grupo
Isang artikulo mula sa isang serye tungkol sa paglikha ng isang proyekto ng Java (nasa dulo ang mga link sa iba pang mga materyales). Ang layunin nito ay pag-aralan ang mga pangunahing teknolohiya, ang resulta ay pagsulat ng isang telegram bot. "Proyektong Java mula A hanggang Z": sinusuri namin ang mga database at ang wikang SQL.  Bahagi 2 - 1Magandang kalusugan, mahal na mga mambabasa. Ngayon ay magsasalita tayo ng kaunti at magsulat ng higit pa, dahil ang ating mga kamay ay mas naaalala kaysa sa ating mga mata. Maaaring nagtataka ka: bakit ginagamit namin ang MySQL? Mayroong, halimbawa, ang parehong PostgreSQL at iba pang mga solusyon. Simple lang ang lahat dito. Una sa lahat, libre ito. Pangalawa, mayroon itong maginhawang interface ng UI (pag-uusapan natin ito sa isang hiwalay na artikulo). Pangatlo, pamilyar at kaaya-aya siya sa akin. Bilang karagdagan sa lahat ng nasa itaas, ang MySQL ay karaniwan din.

Sinusuri ang takdang-aralin

Huling beses na nagbigay ako ng gawain - i-install ang MySQL sa aking makina at mag-log in dito. Sa pamamagitan ng console, o sa ibang paraan. Tapos na ba ang lahat? "Proyektong Java mula A hanggang Z": sinusuri namin ang mga database at ang wikang SQL.  Bahagi 2 - 2Magaling sa mga gumawa nito! Hindi mahalaga kung anong antas ka sa JavaRush, mahalaga na mai-install at mai-configure ang mga kinakailangang tool para sa trabaho ayon sa mga manual. At tinitiyak ko sa iyo, magkakaroon ng marami sa kanila. Ang mga sumubok, ngunit hindi nagtagumpay, ay hindi rin natatakot. Hindi ito palaging nangyayari sa unang pagkakataon: minsan kailangan mong magpahinga at subukang muli nang may sariwang lakas. Sino ang nag-install ng MySQL sa iyong sarili - isulat ang "+" sa mga komento upang malaman kong may gumagawa nito. Ako rin ang gagawa nito. Dahil wala na akong Windows laptop, ipapakita ko ito sa MacBook. Sa palagay ko ay hindi mag-iiba ang proseso ng pag-install. Para sa mga gustong mag-install nito mismo gamit ang English manual, mangyaring mag-click dito .

Pag-install ng MySQL sa MacOS

Una sa lahat, pumunta sa sumusunod na link , piliin ang operating system, maging Windows, Ubuntu o MacOS, tulad ng ipinapakita sa ibaba: "Proyektong Java mula A hanggang Z": sinusuri namin ang mga database at ang wikang SQL.  Bahagi 2 - 3I-download at ilunsad. Gayunpaman, ang lahat ay hindi naging tama para sa akin kaagad. Ito ay lumabas na hindi pinapayagan ng Apple ang pag-install ng pinakabagong bersyon: "Proyektong Java mula A hanggang Z": sinusuri namin ang mga database at ang wikang SQL.  Bahagi 2 - 4Maaari mong, siyempre, huwag paganahin ito, ngunit gumagana ang MacBook, at hindi ako manggugulo sa mga setting nito. Samakatuwid, sa pamamagitan ng pagsubok at error, nakakita ako ng isang bersyon na maaaring i-install - ito ay 5.7.21 . Upang maghanap ng iba pang mga bersyon, pumunta sa tab na Archive at piliin ang nais na bersyon: "Proyektong Java mula A hanggang Z": sinusuri namin ang mga database at ang wikang SQL.  Bahagi 2 - 5Susunod, patakbuhin ang na-download na file. I-click ang susunod, susunod, susunod, ngunit sa dulo, mag-ingat! Magkakaroon ng username at password para mag-log in sa database. Para sa akin ganito ang hitsura: "Proyektong Java mula A hanggang Z": sinusuri namin ang mga database at ang wikang SQL.  Bahagi 2 - 6Sinasabi dito na magkakaroon ng user na may pangalang root at ang password na Vac/zto=.24q . Kinukumpleto nito ang pag-install.

Mag-login sa MySQL command line

Upang mag-log in, kailangan mong tiyakin na ang MySQL server ay naka-on. Upang gawin ito, pumunta sa System Preferences , hanapin ang icon ng MySQL doon: "Proyektong Java mula A hanggang Z": sinusuri namin ang mga database at ang wikang SQL.  Bahagi 2 - 7Pumunta dito at tingnan na dapat munang i-on ang server. Upang gawin ito, i-click lamang ang Start MySQL Server at iyon na. Oo, maaari mo ring lagyan ng tsek ang kahon upang magsimula ang server sa background sa tuwing magsisimula ang makina. "Proyektong Java mula A hanggang Z": sinusuri namin ang mga database at ang wikang SQL.  Bahagi 2 - 8Mahalagang tandaan na sisimulan ko ang lahat ng mga kahilingan sa terminal na may simbolo na $ upang maging malinaw ito. Susunod, kailangan mong direktang kumonekta sa MySQL server sa pamamagitan ng command line. Upang gawin ito, buksan ang terminal at isulat ang: $ mysql At mayroong dalawang pagpipilian:
  1. Kung ang sagot ay “ERROR 1045 (28000): Tinanggihan ang pag-access para sa user na 'roman_beskrovnyi'@'localhost' (gamit ang password: HINDI" , nangangahulugan ito na ang server ay naka-install at binabalikan. Kailangan mo lang ipasa ang tamang command dito.
  2. Kung ang sagot ay command not found: mysql , okay lang - wala lang link sa server. Upang gawin ito, kakailanganin mong gumawa ng isang alias na may mysql variable, kaya isulat namin ang sumusunod na linya:

    $ alias mysql=/usr/local/mysql/bin/mysql

    Makakatulong lang ito para sa terminal session na ito. Ngunit hindi na namin kailangan pa - tiyak na hindi kami uubra sa terminal sa lahat ng oras.

  3. Hindi naka-install ang MySQL, huwag lokohin ang iyong computer.
Susunod, ginagamit namin ang pangalan at password na ibinigay sa panahon ng pag-install at isulat ang: $ mysql --user=root -p"Proyektong Java mula A hanggang Z": sinusuri namin ang mga database at ang wikang SQL.  Bahagi 2 - 9 Doon namin isusulat ang password, at magiging masaya kami sa form na ito: "Proyektong Java mula A hanggang Z": sinusuri namin ang mga database at ang wikang SQL.  Bahagi 2 - 10Ang huling linya lamang ang nagsasabi na kami ay naka-log in sa MySQL terminal server. Ngunit ang password na ito para sa root ay naging isang beses na password, at kailangan itong baguhin sa isa pa. Para sa mga kadahilanang pangseguridad, siyempre. Kung hindi namin ito babaguhin at subukang lumikha ng bagong database sa server, matatanggap namin ang sumusunod na tugon: ERROR 1820 (HY000): Dapat mong i-reset ang iyong password gamit ang ALTER USER statement bago isagawa ang pahayag na ito . "Proyektong Java mula A hanggang Z": sinusuri namin ang mga database at ang wikang SQL.  Bahagi 2 - 11Napipilitan daw sila. Well, okay, mahirap ba para sa amin? Gawin natin ang password na mas simple (ito ay para lamang sa lokal na trabaho; para sa tunay na trabaho, ang password ay dapat na kumplikado, siyempre). Sabihin nating root∫ , tulad ng username. Upang baguhin ang password, kailangan mong ipasok ang linya: ALTER USER 'root'@'localhost' IDENTIFIED BY 'root'; At ang sagot ay ito: "Proyektong Java mula A hanggang Z": sinusuri namin ang mga database at ang wikang SQL.  Bahagi 2 - 12Upang matiyak na gumagana nang tama ang lahat, subukan nating lumikha ng bagong database gamit ang sumusunod na syntax : $ GUMAWA NG DATABASE test_db; Upang matiyak na ang naturang database ay nagawa sa server, isulat ang utos: $ SHOW DATABASES; At bilang resulta ay nakukuha natin ang mga sumusunod: "Proyektong Java mula A hanggang Z": sinusuri namin ang mga database at ang wikang SQL.  Bahagi 2 - 13Iyon lang :) Imposibleng sabihin na ito ay simple at mabilis. Samakatuwid, sinuman ang gumawa nito sa kanyang sarili - espesyal na paggalang. Para sa mga hindi pa nakakagawa nito, huwag mag-alala, may mga manual para sa lahat ng uri ng pag-install: Ang lahat ay inilarawan doon nang maayos. Ang tanging bagay ay ang lahat ay nasa Ingles. Ngayon isinusulat namin ang aming mga unang linya sa SQL.

Pagsusulat ng aming mga unang linya sa SQL

Tulad ng maaaring napansin mo sa itaas, alam namin ang dalawang utos:
  1. GUMAWA NG DATABASE - lumilikha ng isang database sa server;
  2. IPAKITA ANG MGA DATABASE - Ipinapakita ang lahat ng nilikha at magagamit na mga database sa server.
Tandaan ko na ang SQL ay walang pakialam kung paano namin isulat ang kanilang mga utos - alinman sa lahat sa malalaking titik o hindi. Gayunpaman, itinuturing na mabuting asal ang pagsulat ng mga utos sa malalaking titik. Susunod, upang tanggalin ang isang database, kailangan mong isulat ang command DROP DATABASE database_name ; kung saan ang database_name ay ang pangalan ng database na gusto naming tanggalin. Nakagawa na kami ng test database na tinatawag na test_db , kaya tanggalin natin ito. Upang gawin ito, sumulat kami ng: $ DROP DATABASE test; Kapansin-pansin na ang Query OK, 0 row na apektado (0.02 sec) na tugon ay napakahalaga, dahil kinukumpirma nito na matagumpay ang kahilingan. Bilang karagdagan, sinasabi nito sa iyo kung gaano karaming mga hilera sa mga talahanayan ang binago ng query na ito at sa kung anong oras. "Proyektong Java mula A hanggang Z": sinusuri namin ang mga database at ang wikang SQL.  Bahagi 2 - 15Sa pangkalahatan, ang salitang DROP ay responsable para sa pag-alis ng isang bagay. Sa kasong ito, tinanggal namin ang database. Ngunit maaari rin itong gamitin para sa iba pang mga layunin (halimbawa, pag-drop ng isang talahanayan). At ngayon, para magtiwala sa akin , tingnan ang resulta, tingnan natin kung ilang database ang natitira: $ SHOW DATABASES; "Proyektong Java mula A hanggang Z": sinusuri namin ang mga database at ang wikang SQL.  Bahagi 2 - 16Tulad ng nakikita natin, walang database na pinangalanang test_db. CHTD :D

Lumikha ng iyong sariling database at talahanayan

Lumikha ng database ng mga lungsod: $ GUMAWA NG DATABASE na mga lungsod; Upang magtrabaho sa isang partikular na database, kailangan mong mag-log in dito. Upang gawin ito, gamitin ang USE database_name command , pagkatapos nito ang lahat ng mga utos para sa pagtatrabaho sa mga talahanayan ay isasagawa sa database na ito. $ GAMITIN ang mga lungsod; Tulad ng makikita mula sa tugon - Nagbago ang database , matagumpay ang paglipat sa database na ito. "Proyektong Java mula A hanggang Z": sinusuri namin ang mga database at ang wikang SQL.  Bahagi 2 - 17Ang susunod na hakbang ay ang paglikha ng talahanayan. alin? Well, una, gumawa tayo ng table na may mga bansa. Bakit ganon? Dahil ang mga lungsod ay nangangailangan ng isang dayuhang susi sa bansa kung saan ito matatagpuan. At maaari itong makuha pagkatapos ng mga bansang ito sa pangkalahatan ay magsimulang maging sa database (pagkatapos dito - dinaglat mula sa database). Tulad ng naaalala namin mula sa nakaraang artikulo , sa talahanayan kung saan inilarawan ang mga bansa, mayroon kaming dalawang field - ID at pangalan, kung saan ang ID ay isang natatanging identifier, at ang pangalan ay ang pangalan ng bansa. Samakatuwid, ang paglikha ng naturang database ay kasingdali ng paghihimay ng mga peras. Sumulat kami: $ GUMAWA NG TABLE na bansa (id INT, pangalan VARCHAR(30)); "Proyektong Java mula A hanggang Z": sinusuri namin ang mga database at ang wikang SQL.  Bahagi 2 - 18Tulad ng nakikita mo, naging maayos ang lahat. Sa pamamagitan ng pagkakatulad sa SHOW DATABASES, maaari nating tingnan ang listahan ng mga talahanayan: $ SHOW TABLES; "Proyektong Java mula A hanggang Z": sinusuri namin ang mga database at ang wikang SQL.  Bahagi 2 - 19Eto na, ang table namin. Ngayon, alamin natin kung paano magtanggal ng mga talahanayan. Upang gawin ito sumulat kami: $ DROP TABLE bansa; "Proyektong Java mula A hanggang Z": sinusuri namin ang mga database at ang wikang SQL.  Bahagi 2 - 20Mahalagang tandaan na kapag ang isang talahanayan o database ay tinanggal, hindi na ito maibabalik!

Paggawa gamit ang mesa

Ibalik natin ang table na ginawa natin. Upang gawin ito, kailangan mo lamang ulitin kung ano ang nagawa mo na. Upang tingnan ang istraktura ng talahanayan, kailangan mong gamitin ang sumusunod na command - DESC table_name : $ DESC country; "Proyektong Java mula A hanggang Z": sinusuri namin ang mga database at ang wikang SQL.  Bahagi 2 - 21Tulad ng nakikita mo, ang lahat ng impormasyon tungkol sa talahanayan ay naitala dito. Upang magdagdag ng isang bagay sa isang talahanayan, kailangan mong gamitin ang INSERT INTO table_name VALUES() command . Magdagdag tayo ng tatlong tala para sa tatlong bansa: $ INSERT INTO country VALUES (1, 'Ukraine'); $ INSERT INTO country VALUES (2, 'Russia'); $ INSERT INTO country VALUES (3, 'Belorus'); "Proyektong Java mula A hanggang Z": sinusuri namin ang mga database at ang wikang SQL.  Bahagi 2 - 22Upang tingnan kung ano ang nakaimbak sa database, gagamit kami ng isang simpleng kahilingan para makakuha ng data. Upang gawin ito, gusto naming makuha ang data ng lahat ng mga field mula sa talahanayan ng bansa. Alalahaning mabuti ang nakaraang pangungusap dahil ang sql query ay magiging ganito: $ SELECT * FROM country; Kung saan ang * ay nangangahulugang kailangan mong kunin ang lahat ng mga patlang. "Proyektong Java mula A hanggang Z": sinusuri namin ang mga database at ang wikang SQL.  Bahagi 2 - 23Ganito kami naging maganda. Kung nais naming makakuha lamang ng isang partikular na field, hindi iyon problema: sa halip na isang bituin, isinusulat namin ang mga pangalan ng mga patlang na dapat paghiwalayin ng mga kuwit. Subukan ito sa iyong sarili ;) Nakagawa na kami ng isang talahanayan, ngunit kahit papaano ay wala kaming sapat na impormasyon tungkol dito. Ang laki ng populasyon ay tiyak na hindi masasaktan, tama ba? At paano ito gagawin?
  1. Magdagdag ng bagong field sa schema ng talahanayan - populasyon.
  2. I-update ang mga kasalukuyang entry.
Para sa una, gagamitin namin ang ALTER TABLE table_name ADD COLUMN command . Sa pangkalahatan, ang ALTER TABLE ay isang set ng mga command para sa mga pagpapatakbo ng DDL (tandaan kung ano ito? Ito ay sa nakaraang artikulo). Siyanga pala, ang SELECT ay tumutukoy sa isang DML operation. Isulat natin ang sumusunod: $ ALTER TABLE bansa ADD COLUMN population INT; $ DESC bansa; "Proyektong Java mula A hanggang Z": sinusuri namin ang mga database at ang wikang SQL.  Bahagi 2 - 24Tulad ng nakikita mo mula sa figure, matagumpay naming naidagdag ang isang bagong field sa talahanayan at nasuri gamit ang pangalawang command na ang field ay nasa schema. Ang ikalawang hakbang ay i-update ang mga entry sa talahanayan at magtalaga ng mga halaga. Kunin natin ang numero mula sa Wikipedia. Hindi sa nagtitiwala ako sa kanila, ngunit gayunpaman, ito ang pinakamabilis at pinakamadaling paraan. Upang gawin ito, gumamit ng isa pang DML command. Ngunit una, sabihin natin kung ano ang gusto nating gawin: gusto nating i-update ang talahanayan ng bansa, gawing katumbas ng 41806221 ang field ng populasyon sa record kung saan id = 1. At narito ang hitsura ng konstruksiyon na ito: I-UPDATE ang table_name SET table_row1 = value WHERE table_row2 = halaga2; Batay dito, isinusulat namin ang: $ UPDATE country SET population = 41806221 WHERE id = 1; Dito ginamit namin ang keyword na WHERE"Proyektong Java mula A hanggang Z": sinusuri namin ang mga database at ang wikang SQL.  Bahagi 2 - 25 sa unang pagkakataon . Ito ay kinakailangan upang magdagdag ng mga halaga para sa pag-filter. Halimbawa, sa pagkakataong ito sinabi namin na kinakailangan na mag-update lamang para sa field (mga patlang) na ang id ay katumbas ng isa (hanggang sa sinabi namin sa sql na ito ang pangunahing susi - maaaring marami sa kanila). Maaari rin kaming tumukoy ng kundisyon tulad ng WHERE id > 2. Kung hindi namin tinukoy ang pag-filter, naisulat sana ang halagang ito sa lahat ng talaan ng talahanayan. Para sa Russia, Belarus at iba pang mga bansa, i-update ang iyong sarili ;) Ngayon, subukan nating kumuha ng data mula sa talahanayan para sa mga patlang ng pangalan at populasyon, sa kondisyon na ang id ay higit sa 1. $ PUMILI ng pangalan, populasyon MULA sa bansa KUNG SAAN id >1; Kaya, natanggap lamang namin ang mga patlang na gusto namin mismo. Gamit ang INSERT INTO maaari naming tukuyin kung aling mga field ang gusto naming idagdag at kung alin ang gusto naming iwanang walang laman. Upang gawin ito, isusulat namin ang: $ INSERT INTO country (name, population) VALUES('Georgia', 1234566); Upang suriin kung ano ang nangyari, tingnan natin ang listahan ng lahat ng mga field: $ SELECT * FROM country; Kung walang id, ang entry ay masama, at ang populasyon, siyempre, ay kinuha mula sa ulo, kaya kailangan mong tanggalin ito. Gamitin ang utos na DELETE FROM table_name : $ DELETE FROM country WHERE name = 'Georgia'; Sa ganitong paraan natutunan namin kung paano magtanggal ng field mula sa talahanayan."Proyektong Java mula A hanggang Z": sinusuri namin ang mga database at ang wikang SQL.  Bahagi 2 - 26"Proyektong Java mula A hanggang Z": sinusuri namin ang mga database at ang wikang SQL.  Bahagi 2 - 27"Proyektong Java mula A hanggang Z": sinusuri namin ang mga database at ang wikang SQL.  Bahagi 2 - 28

Takdang aralin

Ang takdang-aralin ay magiging ganito:
  1. Kailangan mong magdagdag ng primary key (PRIMARY KEY) mula sa ID field sa country table schema.
  2. Magdagdag ng isa pang bansa sa talahanayan ng bansa - Moldova.
  3. Ayon sa pamamaraan ng nakaraang artikulo, lumikha ng isang talahanayan ng lungsod, na maglalaman ng lahat ng inilarawan na mga patlang. Ang mga pangalan ng field ay ang mga sumusunod: id, name, country_id, population.
  4. Magdagdag ng pangunahing susi sa talahanayan ng lungsod.
  5. Magdagdag ng foreign key sa talahanayan ng lungsod.
Ang gawain ay kawili-wili, para sa mga taong nakakaalam, ito ay magiging mabilis at hindi kumplikado. Para sa mga hindi pa, ito ay magsisilbing isang mahusay na pampalakas ng materyal mula sa artikulong ito.

Isa-isahin natin

Marami kaming ginawa sa artikulong ito. Una, na-install at sinimulan namin ang MySQL database server. Pangalawa, natutunan namin ang isang buong listahan ng mga keyword at query, sa tulong kung saan maaari na kaming lumikha/magtanggal ng mga database at talahanayan. Natutunan namin kung paano magdagdag ng data sa mga talahanayan, i-update at tanggalin ang mga ito. Narito ang lahat ng mga utos na ginamit namin, kasama ang kanilang mga paglalarawan:
  • GUMAWA NG DATABASE database_name; - lumikha ng bagong database
  • MAGPAKITA NG MGA DATABASE; — tingnan ang listahan ng mga database
  • DROP DATABASE database_name; - tanggalin ang database
  • GAMITIN ang database_name; - magtrabaho sa database
  • GUMAWA NG TABLE table_name (id INT, ....); - gumawa ng table
  • IPAKITA ANG MGA TABLE; — tingnan ang listahan ng mga talahanayan
  • DESC TABLE table_name; — tingnan ang diagram ng talahanayan
  • DROP TABLE table_name; - tanggalin ang talahanayan
  • INSERT IN TO table_name VALUES (); - magdagdag ng isang patlang sa talahanayan
  • SELECT * FROM table_name WHERE table_row = halaga; — kumuha ng mga field sa talahanayan sa ilalim ng kundisyon pagkatapos ng WHERE
  • PUMILI * MULA sa table_name; - kunin ang lahat ng mga patlang sa talahanayan
  • ALTER TABLE table_name ADD COLUMN column_name COLUMN_TYPE; — magdagdag ng bagong field ng field sa schema ng talahanayan
  • I-UPDATE ang talbe_name SET talbe_row1 = value1 WHERE table_row2 = value2; — i-update ang mga tala sa talahanayan: itakda ang mga halaga ng isang field na napapailalim sa kundisyon para sa isa pang field
  • TANGGALIN MULA SA table_name WHERE table_row1 = value1; — alisin ang isang patlang (o mga patlang) mula sa isang talahanayan sa ilalim ng isang tiyak na kundisyon.
Sa tingin ko, mahusay kaming gumawa sa iyo. Inaanyayahan ko ang lahat ng may gusto sa aking trabaho na mag-subscribe sa aking GitHub account , kung saan nagpo-post ako ng mga kawili-wiling proyekto at mga development na nangyayari sa aking karera. Inaanyayahan ko ang lahat na interesadong magtrabaho sa open source na lumahok sa aking mga proyekto (mga repositoryo). Salamat sa lahat ng iyong atensyon. Manatiling nakatutok para sa susunod na artikulo sa mga database na paparating na.

Ang isang listahan ng lahat ng mga materyales sa serye ay nasa simula ng artikulong ito.

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