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

Sinusuri namin ang mga database at ang wikang SQL - "Java project from A to Z"

Nai-publish sa grupo
Isang artikulo mula sa isang serye tungkol sa paglikha ng isang proyekto ng Java. Ang layunin nito ay pag-aralan ang mga pangunahing teknolohiya, ang resulta ay pagsulat ng isang telegram bot. Ang panimulang bahagi ay narito . Aloha, mga inhinyero ng software. Ngayon ay pinag-uusapan natin ang tungkol sa mga database at ang wikang SQL. "Proyekto ng Java mula A hanggang Z": pagsusuri ng mga database at wika ng SQL - 1Para kanino ang artikulong ito? Oo sa lahat ng interesado. Ang ilan ay maaaring simulan ang kanilang paglalakbay sa artikulong ito, ang iba ay magagawang i-refresh ang kanilang memorya ng mga kagiliw-giliw na katotohanan. Ang bahaging ito ay magiging puro teoretikal. Bago namin sabihin sa iyo kung ano ang mga database at SQL syntax, kailangan naming maunawaan at matukoy kung bakit namin pag-aaralan ang mga ito. Sa yugtong ito, pag-uusapan LAMANG ang tungkol sa mga database ng SQL: Hindi namin isasaalang-alang ang NoSQL sa seryeng ito ng mga artikulo.

Database: ano ito

"Proyekto ng Java mula A hanggang Z": pagsusuri ng mga database at wika ng SQL - 2Ang database (mula dito ay tinutukoy bilang DB) ay isang lugar kung saan nakaimbak ang structured data , na maaaring makuha gamit ang isang query language. Ang mga database ay hindi lamang maaaring mag-imbak, ngunit din iproseso at baguhin ang impormasyon sa malalaking volume. Bilang isang tala: subukang mabilis na baguhin ang isang hanay ng mga halaga sa Excel batay sa ilang pamantayan. Sa prinsipyo, walang kumplikado. Hindi tulad sa ating hindi digitized na totoong mundo. Halimbawa, pagpapalit ng pangalan ng mga linya, kalye, lungsod. Kung ang lahat ay virtual at ipinasok sa database, ito ay magiging normal, ito ay magiging isang pares ng mga trifle. Tulad nito, maraming storage media ang nagdurusa dahil hindi sila awtomatikong nagbabago. Sa kontekstong ito, ang SQL para sa mga database ay isang wika na naiintindihan ng database at tumutugon nang naaayon. Sabihin nating, ang pagpapalit ng pangalan sa lungsod ay hindi magiging mahirap; ang pagpapalit ng pangalan sa Dnepropetrovsk sa Dnipro ay magiging ganito:
UPDATE city SET name = “Днипро” WHERE id = 1231;
Ang lahat ng kasunod na kahilingan sa system ay maglalabas na ng pangalan na kailangan namin.

Bakit kailangan ang mga database?

Tulad ng sinabi ko na, gamit ang mga database maaari kang mag-imbak ng data. Ngunit ano ang data na ito? Upang maunawaan ang paggamit ng isang tunay na halimbawa sa buhay, maaari nating pag-usapan ang ilang aplikasyon. Halimbawa, tungkol sa parehong telegram bot. Gusto naming malaman kung gaano karaming tao ang gumagamit ng bot. Paano ito maipapatupad? Sa isang regular na Java application, maaari kang lumikha ng maraming natatanging elemento - isang Set, na mag-iimbak ng palayaw o chat ID ng user. Gagana ba ito? Will. Eksakto hanggang sa mahinto ang application ng Java, at sa sandaling magsimula itong muli, mawawalan ng laman ang hanay ng mga natatanging elemento. Iyon ay, ang data na nakaimbak sa tumatakbong application ay nawala lamang. Ano ang maaari mong gawin tungkol dito? Maaari mong ilipat ang storage ng system state (data) mula sa isang Java application sa ibang lugar. Maaari mong iimbak ito sa CSV format sa isang regular na file sa iyong computer. Magagawa mo ito sa isang linya sa isang hiwalay na file. Magagawa mo ito at pagkatapos ay i-overwrite ang data na ito bago huminto ang Java application. Kahit na ang garantiya na ang pag-record ay magiging matagumpay ay malayo mula sa malapit sa 100%, dahil maaari mo lamang i-pull out ang power cord ng server at ang pag-record ay hindi mangyayari. Ang diskarte na ito ay may isang makabuluhang disbentaha: walang functionality para sa pagkuha, pagsasama-sama at paghahanap ng impormasyon sa antas ng file. Oo, siyempre, maaari kang magbasa ng isang file at lumikha ng mga bagay para dito, ngunit kakailanganin mong i-pump ang lahat ng data sa application BAWAT oras. At maaaring marami sa kanila, halimbawa, isang pares ng gigabytes. Ito ay maiiwasan sa pamamagitan ng pag-iimbak ng data sa isang database. Paano? Sa pamamagitan ng mga talahanayan at relasyon sa pagitan nila. Ito ang batayan ng lahat ng relational database.

SQL: isang wika na naiintindihan ng mga database

Mayroong Database Management System (simula dito ay tinutukoy bilang DBMS) at ang wikang naiintindihan nila ay SQL. Ang SQL ay isang programming language para sa pagmamanipula at pamamahala ng mga database. Upang maunawaan kung paano ito gumagana, tingnan natin ang figure: "Proyekto ng Java mula A hanggang Z": pagsusuri ng mga database at wika ng SQL - 3Nagpapadala ang user ng mga SQL query sa DBMS, naiintindihan ng DBMS kung ano ang kailangang gawin, ginagawa ito, at kung ang kahilingan ay upang makakuha ng data, pagkatapos ay ibabalik ito. Samakatuwid, bilang mga developer, kailangan nating makabisado ang SQL query language. Maaari mong isipin, "Oh, ibang wika. Sa tulong ng Diyos, halos hindi ko maintindihan ang Java dito, at agad mo akong inaalok ng ibang wika.” Ito ay hindi totoo: Ang SQL ay naimbento bilang isang wika ng detalye para sa isang DBMS upang ang mga accountant na napakalayo sa mga database at programming sa pangkalahatan ay maaaring magsulat sa wikang ito. Nangangahulugan ito na ang pag-aaral nito ay hindi magiging ganoon kahirap. Ang pangunahing bagay ay PRACTICE-PRACTICE-PRACTICE. Ngayon ay magkakaroon ng teorya, ngunit ang susunod na artikulo ay tungkol sa pagsasanay. Dahil ang isang relational database ay isang set ng dalawang-dimensional na array-table at mga relasyon sa pagitan ng mga ito, gagana ang gawain sa kanilang paligid. Kung pinag-uusapan natin ang isang halimbawa, maaari tayong magpakita ng dalawang talahanayan - "Mga Bansa" at "Mga Lungsod" at kung paano sila konektado. "Proyekto ng Java mula A hanggang Z": pagsusuri ng mga database at wika ng SQL - 4Sa yugtong ito, mahalagang maunawaan natin na ang mga tala sa talahanayan ay data tungkol sa ilang bagay mula sa mundo ng Java. Halimbawa, ang dalawang talahanayan na ito ay maaaring ilarawan sa Java tulad nito:
public class Country {
   private Long id;
   private String name;
}

public class City {

   private Long id;
   private String name;
   private Country country;
   private Integer population;
}
Aba, ang ganda di ba? Ang database ay maaaring mag-imbak ng anumang bilang ng mga talahanayan. Sa aming kaso, dalawa sila.

Istraktura ng talahanayan

Sa tingin ko lahat ay nakatagpo ng mga talahanayan ng Excel sa isang paraan o iba pa, at naiintindihan mo ang mga terminong row at column . Sa konteksto ng mga database, mas marami tayong pinag-uusapan tungkol sa mga talaan at mga patlang: "Proyektong Java mula A hanggang Z": pagsusuri ng mga database at wika ng SQL - 5Kaya, lumalabas na ang bawat bagay ng klase ng Lungsod ay isang talaan sa isang talahanayan sa database.

Pangunahing susi

"Proyekto ng Java mula A hanggang Z": pagsusuri ng mga database at wika ng SQL - 6Madalas na nangyayari na ang mga patlang sa mga database ay may parehong mga halaga. Halimbawa, ang mga social network, kung saan higit sa isang tao ang makikita sa pamamagitan ng pangalan, apelyido at kahit patronymic. At ang mga relational database ay nangangailangan ng isang natatanging field na maaaring magamit upang ma-access ang isang tala. Ito ay tinatawag na unang susi o Pangunahing Susi. Kadalasan, ginagamit ang field ng ID(id) bilang isang key - ito ay maikli para sa identifier. Ito ang dahilan kung bakit kailangan mong magdagdag ng field ng ID sa bawat talahanayan ."Proyekto ng Java mula A hanggang Z": pagsusuri ng mga database at wika ng SQL - 7

Panlabas na susi

Sa aming halimbawa, ang naturang field ay nasa talahanayan ng Lungsod, na gumagamit ng susi mula sa Bansa. At ito ay gumagana tulad nito: alam ng bawat lungsod ang isang natatanging identifier ng impormasyon para sa bansa nito, at kung kukunin namin ito at gagawa ng query sa database, makakatanggap kami ng komprehensibong impormasyon tungkol sa bansa. Tulad ng makikita mo sa larawan, mayroong isang relasyon sa pagitan ng dalawang talahanayan: "Proyekto ng Java mula A hanggang Z": pagsusuri ng mga database at wika ng SQL - 8Ang prinsipyo ng isang dayuhang key ay ipinapakita dito.

Anong mga seksyon ang mayroon sa SQL?

Sa pamamagitan ng paraan, sa panahon ng mga panayam madalas silang tinatanong kung ano ang mga operasyon sa SQL:
  • Ang DDL (Data Definition Language) ay isang pangkat ng mga operator na nagbabago/gumawa ng mga talahanayan, kanilang istraktura, at higit pa. Iyon ay, paglikha ng isang talahanayan, pagtanggal nito, paggawa/pagtanggal ng mga patlang sa mga talahanayan; paglikha ng bagong pangunahing key at iba pa;
  • Ang DML (Data Manipulation Language) ay isang pangkat ng mga operator na namamahala sa pagbabago ng data. Ito ang lahat ng mga operasyon na nagbabago ng data sa database: pagdaragdag, pagkuha, pagbabago at pagtanggal;
  • Ang DCL (Data Control Language) ay isang paraan ng pagkumpirma ng mga karapatan ng user na magsagawa ng mga aksyon. Mga operasyon upang magbigay ng access at mga karapatan sa isang partikular na user upang magawa niya ang mga pagpapatakbo ng DDL/DML.

Anong mga uri ng data ang mayroon sa SQL

Ang mga talahanayan ay maaaring mag-imbak at magproseso ng ilang uri ng data. Ang lahat dito ay magiging katulad ng ginagamit namin sa Java. Pag-usapan natin ang mga pangunahing. Tatlo lang sila, magdadagdag kami ng iba kung kinakailangan at/o ninanais: "Proyektong Java mula A hanggang Z": pagsusuri ng mga database at wika ng SQL - 9Gaya ng makikita sa larawan, ito ay:
  • INT - mga halaga ng integer. Ginagamit para sa isang natatanging identifier at para sa isang simpleng integer;
  • VARCHAR ang aming String ;
  • Ang DATE ay ang aming LocalDate.
Sa ngayon ang lahat ay simple, tama? Tinukoy ang mga uri ng field kapag lumilikha ng talahanayan. Malinaw na hindi posibleng magsulat ng value ng ibang uri sa field.

Ano ang mga operator ng SQL

Ang operator ay isang hiwalay na utos na nagsasagawa ng ilang aksyon. Ang mga operator ay binubuo ng mga pangungusap, na kung saan ay binubuo ng mga keyword na ginagamit sa mga query. Tingnan natin ang isang halimbawa: "Proyekto ng Java mula A hanggang Z": pagsusuri ng mga database at wika ng SQL - 10Ito ay mas kawili-wili dito, isang query ay naitayo na dito. Anong ginagawa nila doon? Simple lang, sabi nito: “Kumuha ng tatlong field (Pangalan, Edad at Petsa ng Nilikha) mula sa talahanayan ng Mga Kliyente, piliin lamang ang mga talaan kung saan ang pangalan ay katumbas ng Romano.”

Konklusyon

Sa artikulong ito nagsimula kaming mag-aral ng mga database. Naunawaan namin kung ano ito at kung bakit kailangan namin ito. Susunod, tinalakay namin ang mga unang palatandaan ng SQL, na pag-uusapan natin nang mas detalyado sa susunod na artikulo. Gaya ng dati, iminumungkahi kong magparehistro sa GitHub at sundin ang aking account upang sundan ang seryeng ito at ang iba ko pang mga proyektong pinagtatrabahuhan ko doon.

Takdang aralin

Upang magdagdag ng interes sa seryeng ito ng mga artikulo sa JRTB, magkakaroon ng mga takdang-aralin paminsan-minsan. Halimbawa, kung walang atas ngayon, ang susunod na artikulo ay magiging mas mahirap unawain, dahil magkakaroon ng maraming pagsasanay doon. Samakatuwid, ang gawain ay i-install ang MySQL DBMS sa iyong computer at mag-log in sa database alinman sa pamamagitan ng console o sa pamamagitan ng iba pang mga solusyon. Salamat sa lahat ng nagbabasa, see you soon!

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