JavaRush /Java Blog /Random-TL /Pagsusuri sa aklat na “SQL. Isang koleksyon ng mga recipe...

Pagsusuri sa aklat na “SQL. Isang koleksyon ng mga recipe” ni Anthony Molinaro

Nai-publish sa grupo
Kamusta kayong lahat. Ang mga taong may layunin na gustong maging mga developer ng Java ay nagtipon dito. At ito ay lohikal: JavaRush ay nilikha para dito. Upang maging isang ganap na developer, kailangan mong malaman ang isang tiyak na listahan ng mga paksa. Inilarawan ko ang isang kumpletong checklist ng kaalaman na kinakailangan para sa isang developer ng Java sa artikulong ito . Pagsusuri sa aklat na “SQL.  Koleksyon ng mga recipe” ni Anthony Molinaro - 1Kaya: ang isa sa mga kinakailangang paksa sa listahang ito ay ang kaalaman sa wikang SQL at pamilyar sa hindi bababa sa isang relational database. Ang magandang balita ay kailangan mo lamang ng isang libro upang matuto ng SQL sa isang antas na sapat para sa isang developer ng Java! Mayroong maraming mga pagpipilian para sa mga aklat na angkop para sa isang paunang pagsisid sa SQL, ngunit ngayon gusto kong tumuon sa "SQL. Koleksyon ng mga recipe” ni Anthony Molinaro. Pagsusuri sa aklat na “SQL.  Koleksyon ng mga recipe” Anthony Molinaro - 2Ang kakaiba ng libro ay na bilang karagdagan sa pag-aaral ng SQL sa isang pangunahing antas, magiging pamilyar ka sa ilang mga database nang sabay-sabay at makikita kung paano naiiba ang mga query para sa kanila at kung ano ang mga tampok ng isang partikular na database. Sinasaklaw ng aklat na ito ang mga query para sa mga sumusunod na database:
  • DB2;
  • Oracle Database;
  • PostgreSQL;
  • SQL Server;
  • MySQL.

Para kanino ang libro?

  • nagsisimulang developer

Una sa lahat, ang aklat na ito ay magiging kapaki-pakinabang sa isang baguhan na developer, halimbawa, sa Java. Kakailanganin mong harapin sa isang pangunahing antas ang iba't ibang mga relational database, kaya ang aklat na ito ay makakatulong sa iyo na makakuha ng kinakailangang kaalaman sa SQL.

  • makaranasang developer

Malamang na pamilyar ka na sa pagbuo ng mga query sa SQL, ngunit ang aklat na ito ay kawili-wiling sorpresa sa iyo at makadagdag sa iyong kaalaman. O, halimbawa, lumipat ka sa isang proyekto na may relational database na hindi pamilyar sa iyo. Pagkatapos, sa tulong ng aklat na ito, magagawa mong gumuhit ng mga pagkakatulad mula sa mga query mula sa isang pamilyar na database patungo sa isang bago.

  • nagsisimulang developer ng SQL

Maaaring iniisip mo lang na maging isang developer ng database. Kung gayon ang aklat na ito ay perpekto para sa iyo! Magagawa mong pag-aralan ang mga pangunahing kaalaman ng SQL, tinalakay para sa iba't ibang mga database, at piliin ang "iyong" database, na pag-aaralan mo nang mas detalyado sa hinaharap.

Tungkol saan ang aklat na ito

Sinasaklaw ng aklat na ito, kabanata bawat kabanata, ang mga pangunahing paksa ng SQL, pati na rin ang iba't ibang mga problema sa SQL at ang kanilang mga solusyon. Samakatuwid, maaari itong magamit bilang isang sanggunian: lumitaw ang isang problema, naghahanap ka ng mga angkop na paraan upang malutas ito, at pagkatapos ay lumilikha ka ng iyong solusyon upang umangkop sa kasalukuyang mga kondisyon. Ang mga pahina ng aklat na ito ay naglalaman ng higit sa 150 mga recipe. Oo, eksaktong mga recipe para sa pagbuo ng mga query sa SQL: kaya ganito ang pangalan ng libro. Pagsusuri sa aklat na “SQL.  Koleksyon ng mga recipe” Anthony Molinaro - 3Ano ang gagawin pagkatapos basahin ang aklat na ito?
  1. Huwag matakot na mag-eksperimento, dahil sa pamamagitan lamang ng pagsubok at pagkakamali maaari kang makakuha ng ganoong mahalagang karanasan, kaya magsanay, magsanay at magsanay muli!
  2. Subukan ito. Ang ibig kong sabihin ay habang binabasa ang aklat na ito, mas mainam na subukan ang mga halimbawa ng mga query na ibinigay nang magkatulad, na, salamat dito, ay maaalalang mabuti sa iyong memorya.
  3. Ang pag-uulit ay ang ina ng pag-aaral. Samakatuwid, ipinapayong magpakilala ng isang tala kung saan maaari mong isulat ang mga pangunahing punto at ulitin ang mga ito sa pana-panahon, upang ang pagsusulat ng mga tanong sa hinaharap ay hindi magdulot sa iyo ng anumang mga problema.
  4. Kailangan mong maunawaan na ang bago ay hindi palaging nangangahulugang mas mahusay. Dahil hindi ka gumagamit ng ilan sa mga pinakabagong feature ng SQL (gaya ng mga function ng window) ay hindi nangangahulugang hindi epektibo ang iyong code. Pagkatapos ng lahat, maraming mga halimbawa kung saan ang mga tradisyonal na solusyon sa SQL ay hindi mas masahol pa, at kung minsan ay mas mahusay pa, kaysa sa isang bagong solusyon.
  5. Huwag matakot mag-eksperimento. Maging malikhain sa iyong gawa! Pagkatapos ng lahat, ang lahat ng mga solusyon ay hindi pa naimbento: marahil sa iyong sitwasyon isang malikhaing diskarte ang magiging pinakamahusay.
Pagsusuri sa aklat na “SQL.  Koleksyon ng mga recipe” Anthony Molinaro - 4Ngayon tingnan natin nang kaunti ang mga nilalaman ng aklat:

1. Pagkuha ng mga talaan

Sinusuri ng kabanatang ito ang una, pinakasimpleng mga tanong. Sa mga halimbawa makikita mo:
  • kung paano magagamit ang sugnay na WHERE upang pumili ng mga hilera sa isang karaniwang hanay ng resulta;
  • paano magtalaga ng mga alias sa mga column ng resulta;
  • kung paano ka makakagamit ng subquery para ma-access ang mga column sa pamamagitan ng mga alias;
  • kung paano limitahan ang bilang na ibinalik sa mga hilera ng resulta;
  • kung paano ibalik ang mga random na string at makita ang mga NULL na halaga.
Bilang isang patakaran, ang mga halimbawa ay medyo simple, ngunit sa parehong oras mayroong ilang na maaaring sorpresa kahit na napapanahong mga developer.

2. Pag-uuri ng mga resulta ng query

Tinatalakay ng kabanatang ito ang pag-uuri ng mga resulta ng query. Sa totoo lang, ang ORDER BY operator ay ginagamit para dito . Makakakita ka ng mga halimbawa ng iba't ibang kumplikado na mula sa simpleng pag-order ng isang column, hanggang sa pag-uuri ayon sa mga substring, hanggang sa pag-uuri gamit ang iba't ibang kondisyon.

3. Paggawa gamit ang maramihang mga talahanayan

Ang bahaging ito ng aklat ay nagpapakilala ng mga paraan upang pagsamahin ang data mula sa maraming talahanayan. Hindi ako magsisinungaling kung sasabihin ko na ang table joins ay isa sa mga pangunahing haligi ng SQL, at para maging matagumpay sa SQL, kailangan mong makuha ang kaalamang ito at magamit mo ito. Dito makikita mo ang mga halimbawa ng parehong panloob at panlabas na pagsasama, mga produkto ng Cartesian, mga pangunahing operasyon ng hanay (pagbabawas, pagsasama, intersection), at kung paano makakaapekto ang mga pagsali sa mga pinagsama-samang function.

4. Ipasok, i-update, tanggalin

Sa seksyong ito, matututunan mo ang mga query sa SQL upang magpasok, mag-update, at magtanggal ng data. Tinalakay din ang higit pang mga kawili-wiling halimbawa - mga operasyon tulad ng pagpasok ng mga row mula sa isang table papunta sa isa pa o paggamit ng mga kaugnay na subquery sa panahon ng mga update. Mauunawaan mo ang mga kahihinatnan ng pagkakaroon ng mga NULL na halaga, matutunan ang tungkol sa multi-table insertion, ang MERGE command, atbp.

5. Mga kahilingan para sa metadata

Ang kabanatang ito ay nagsasalita tungkol sa pagbuo ng mga query para ma-access ang metadata ng database na iyong ginagamit: kapaki-pakinabang na malaman ang mga index, hadlang, at mga talahanayan ng schema. Ang mga simpleng query na iminungkahi dito ay nagbibigay-daan sa iyo na makakuha ng impormasyon tungkol sa mismong schema. Bilang karagdagan, ang kabanatang ito ay nagpapakita ng mga halimbawa ng "dynamic na SQL", iyon ay, SQL na nabuo ng SQL.

6. Paggawa gamit ang mga string

Ang kabanatang ito ay nagpapakilala ng mga pamamaraan para sa pagtatrabaho sa mga string. Ang SQL ay hindi kailanman nakilala para sa mga kakayahan sa pag-parse ng string, ngunit ang kaunting pagkamalikhain kasama ng malawak na hanay ng mga function na ibinigay ng iba't ibang mga database ay maaaring makamit ang malaking tagumpay sa bagay na ito. Actually, itong chapter na ito ay kung saan nagsisimula ang saya. Ang ilang mga halimbawa ay sorpresa sa iyo. Halimbawa:
  • pagbibilang ng mga pagkakataon ng isang character sa isang string;
  • i-convert ang mga delimited na listahan at string sa mga hilera ng talahanayan;
  • paglikha ng mga delimited na listahan mula sa mga hilera ng talahanayan;
  • paghihiwalay ng numeric at character na data ng isang string na binubuo ng mga alphanumeric na character.

7. Paggawa gamit ang mga numero

Ang bahaging ito ng aklat ay titingnan ang mga paraan upang malutas ang mga karaniwang problema sa mga numero. Dito mahahanap mo ang mga karaniwang halimbawa at matutunan kung paano madaling mahawakan ng mga function ng window ang mga gawain sa pagkalkula at pagsasama-sama. Matututo ka:
  • kalkulahin ang kasalukuyang halaga;
  • hanapin ang mean, median at mode;
  • kalkulahin ang percentile;
  • pangasiwaan ang mga NULL na halaga kapag nagsasagawa ng pagsasama-sama.

8-9. Aritmetika ng petsa

Sa dalawang kabanatang ito matututunan mo kung paano magtrabaho sa mga petsa, dahil kapag nilulutas ang mga pang-araw-araw na problema mahalaga na magawa ang pinakasimple at pinakakaraniwang mga operasyon sa kanila. Kasama sa iba't ibang halimbawa ang paghahanap ng bilang ng mga araw ng trabaho sa pagitan ng dalawang petsa, pagkalkula ng pagkakaiba sa pagitan ng dalawang petsa sa magkaibang unit ng oras, pagbabalik sa lahat ng araw ng taon, paghahanap ng mga leap year, paghahanap ng una at huling araw ng isang buwan, paggawa ng kalendaryo, atbp. . Pagkatapos ng mga kabanatang ito, magiging napakahirap na takutin ka sa anumang gawain na nauugnay sa mga petsa (ngunit maaari kang takutin).

10. Paggawa gamit ang mga hanay ng data*

Ang kabanatang ito ay nagpapakilala ng mga pamamaraan para sa paghahanap ng mga halaga na nasa hanay na ng petsa. Matututuhan mo kung paano awtomatikong bumuo ng mga string sequence, magpasok ng mga nawawalang numeric range value, matukoy ang simula at dulo ng isang value range, at tukuyin ang mga sequence ng mga value.

11. Masusing paghahanap*

Dito makikita mo ang mga tampok na mahalaga para sa pang-araw-araw na gawain sa mga database, ngunit minsan ay nagdudulot ng mga kahirapan. Kasama sa mga halimbawa sa kabanatang ito ang paghahanap ng mga halaga gamit ang mga paggalaw ng kabalyero, paghahati ng resulta na nakatakda sa mga pahina, paglaktaw sa mga hilera ng talahanayan, paghahanap ng mga katumbas na halaga, at iba pa.

12. Pag-uulat at pamamahala ng data warehouse**

Kadalasan ay maaaring kailangan namin ng mga espesyal na query upang makabuo ng mga ulat. Tutulungan tayo ng kabanatang ito na gawin iyon: dito titingnan mo ang mga halimbawa ng pag-convert ng mga row sa column at vice versa (cross-reference na mga ulat), paggawa ng mga grupo ng data, paggawa ng histograms, pagkalkula ng simple at buong subsums, pagsasama-sama ng sliding window ng mga row , at pagpapangkat ng mga hilera ayon sa ibinigay na agwat ng oras.

13. Hierarchical na mga query**

Sasabihin sa amin ng kabanatang ito ang tungkol sa mga posibilidad ng pagtatrabaho sa hierarchical data. Anuman ang modelo ng data, isang araw ay kailangan itong i-format bilang isang hierarchy tree o relasyon ng magulang->anak. Samakatuwid, sa kabanatang ito ay susuriin mo ang mga problema at solusyon para dito. Mahirap gumawa ng mga set ng resulta na nakabalangkas sa puno gamit ang tradisyunal na SQL, kaya ipinapakita sa iyo ng tutorial na ito kung paano gumamit ng ilang lubhang kapaki-pakinabang na mga espesyal na function. Sa mga halimbawa, titingnan mo nang detalyado ang relasyon ng magulang->anak, binabagtas ang hierarchy mula sa root node hanggang sa mga leaf node, at pag-iipon ng hierarchy.

14. Bagay-bagay

At sa wakas, makikita mo ang lahat ng natitirang mga tampok na hindi magkasya sa alinman sa mga nakaraang kabanata, ngunit sa parehong oras ang mga ito ay hindi gaanong kawili-wili at kapaki-pakinabang. Naiiba din ang kabanatang ito sa iba dahil nag-aalok lamang ito ng mga solusyon para sa mga partikular na DBMS. Ito ang tanging kabanata sa aklat kung saan isang database lamang ang tinatalakay bawat recipe. Ginawa ito upang ipakita ang mga kakayahan at tampok ng mga partikular na DBMS (upang mas maramdaman mo ang pagkakaiba sa pagitan nila). Mga kalamangan ng libro:
  1. Maraming halimbawa.
  2. Mahusay para sa "pangunahing" diving.
  3. Ang mga halimbawa para sa iba't ibang DBMS ay isinasaalang-alang.
  4. May magandang pagsasalin.
Disadvantage: Hindi isinasaalang-alang ang mas kumplikado, partikular, bihirang mga gawain/problema.

Mga analogue ng libro

  1. "Pag-aaral ng SQL" - Alan Bewley: isa ring libro para sa paunang pagsisid sa SQL na may pagsasaalang-alang sa iba't ibang mga DBMS, ngunit nagbibigay ito ng espesyal na diin sa MySQL. Ang downside ng libro ay ang hindi sapat na "ngumunguya" ng bagong impormasyon.
  2. "SQL: A Language Learning Guide" - Chris Fiaily: Isang aklat na sumasaklaw din sa mga pangunahing kaalaman ng iba't ibang database. Mahusay para sa mga nagsisimula, ngunit kung pamilyar ka na sa SQL at kailangan mong matuto nang higit pa sa mga mas mahuhusay na punto, maaaring gusto mong maghanap sa ibang lugar.
  3. "Una ang Ulo - Pag-aaral ng SQL" - Lynn Bailey: isang aklat na may napakababang hadlang sa pagpasok, ito ay maghahatid ng maraming pangunahing punto sa isang naa-access at detalyadong paraan (marahil minsan ay napakasimple). Sa mga halimbawa nito, hindi isinasaalang-alang ng aklat na ito ang ilang mga database, tulad ng mga analogue sa itaas, ngunit isa - MySQL.

Bottom line

Kung determinado kang maging isang developer ng Java, hindi mo magagawa nang hindi natututunan ang SQL. Ngunit sa kabutihang palad, hindi namin kailangang malaman ito sa parehong antas ng mga developer ng database, at ang dami ng kinakailangang kaalaman, sa prinsipyo, ay maaaring saklawin ng isang libro lamang sa SQL. Ang librong sinuri ngayon ay “SQL. Ang isang koleksyon ng mga recipe", o isa sa mga ipinakita na analogue, ay maaaring ganap na angkop sa iyo. Buweno, ang pagpili kung ano ang eksaktong babasahin (o hindi babasahin) ay sa iyo) PS Upang makuha ang iyong mga kamay sa pagsasanay ng pagsulat ng SQL upang malutas ang iba't ibang mga problema, maaari mong gamitin ang site na ito . PSS At dito maaari kang maging pamilyar sa mga karaniwang tanong tungkol sa mga database, mas mabuti pagkatapos basahin ang libro.
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION