Mga computerMga database

SQL Stored Procedures: Paglikha at Paggamit

Naka-imbak na mga pamamaraan SQL ay isang executable module ng programa na maaaring maimbak sa isang database ng iba't ibang mga bagay. Sa ibang salita, ito ay isang bagay na naglalaman ng mga SQL statement. Ang mga naka-imbak na mga pamamaraan ay maaaring isagawa sa client ng application upang makakuha ng mahusay na pagganap. Bilang karagdagan, ang mga naturang bagay ay madalas na tinatawag mula sa iba pang mga sitwasyon o kahit na mula sa ilang iba pang mga seksyon.

Panimula

Maraming naniniwala na ang mga ito ay katulad ng mga pamamaraan ng iba't ibang mga mataas na antas ng programming language (ayon sa pagkakabanggit, maliban sa MS SQL). Marahil, totoo nga ito. Sila ay may katulad na mga parameter, maaari silang magbigay ng katulad na mga halaga. Bukod dito, sa ilang mga kaso sila ay nasa contact. Halimbawa, ang mga ito ay pinagsama sa mga database ng DDL at DML, pati na rin sa mga pag-andar ng gumagamit (pangalan ng code - UDF).

Sa katunayan, ang mga pamamaraan ng SQL na nakaimbak ay may malawak na hanay ng mga pakinabang na makilala ang mga ito mula sa mga katulad na proseso. Seguridad, pagbabagu-bago ng programming, pagiging produktibo - lahat ng ito ay umaakit sa mga gumagamit na nagtatrabaho sa mga database, higit pa at higit pa. Ang rurok ng popularidad ng mga pamamaraan ay naganap noong 2005-2010, nang inilabas ng Microsoft ang isang programa na tinatawag na SQL Server Management Studio. Sa tulong nito, ang pagtatrabaho sa mga database ay naging mas madali, mas praktikal at mas maginhawang. Mula taon hanggang taon ang paraan ng paglipat ng impormasyon ay nakakuha ng katanyagan sa mga programmer. Ngayon, ang MS SQL Server ay ganap na pamilyar na programa, na para sa mga gumagamit na "makipag-ugnayan" sa mga database, ay nabuhay kasama ang "Excel".

Kapag ang isang pamamaraan ay tinatawag na, ito ay agad na naproseso ng server mismo, nang walang mga hindi kinakailangang proseso at interbensyon ng gumagamit. Pagkatapos nito, maaari kang magsagawa ng anumang mga pagkilos na may impormasyon: pagtanggal, pagpapatupad, pagbabago. Para sa lahat ng ito ay ang responsibilidad ng DDL operator, na kung saan nag-iisa gumaganap ang pinaka kumplikadong pagproseso ng mga bagay. At lahat ng ito ay nangyayari nang napakabilis, at ang server ay hindi aktwal na na-load. Ang bilis at pagganap na ito ay nagbibigay-daan sa mabilis mong paglipat ng malalaking halaga ng impormasyon mula sa gumagamit sa server at sa kabaligtaran.

Upang ipatupad ang teknolohiyang ito sa trabaho na may impormasyon, mayroong maraming mga programming language. Kabilang dito ang, halimbawa, PL / SQL mula sa sistema ng pamamahala ng database ng Oracle, PSQL sa mga sistema ng InterBase at Firebird, pati na rin ang klasikong "Microsoft Transact-SQL". Ang lahat ng mga ito ay dinisenyo upang lumikha at magsagawa ng mga nakaimbak na pamamaraan, na nagpapahintulot sa paggamit ng mga malalaking algorithm sa mga malalaking tagapangasiwa ng database. Kinakailangan din para sa mga namamahala ng naturang impormasyon upang maprotektahan ang lahat ng bagay mula sa hindi awtorisadong pag-access ng mga third party at, nang naaayon, lumikha, magbago o magtanggal ng ilang data.

Pagiging Produktibo

Ang mga database ng mga bagay ay maaaring programmed sa iba't ibang paraan. Pinapayagan nito ang mga user na piliin ang uri ng pamamaraan na ginamit, na kung saan ay pinaka-angkop, na nagliligtas ng oras at pagsisikap. Bilang karagdagan, ang proseso mismo ay naproseso, na nag-iwas sa malaking oras na ginugol sa pakikipagpalitan sa pagitan ng server at ng user. Gayundin, ang module ay maaaring reprogrammed at mabago sa nais na direksyon sa anumang oras. Lalo na ito ay nagkakahalaga ng pagpuna sa bilis kung saan ang SQL na naka-imbak na pamamaraan ay nagsisimula: ang prosesong ito ay mas mabilis kaysa sa iba, katulad nito, na ginagawang maginhawa at maraming nalalaman.

Seguridad

Ang ganitong uri ng pagpoproseso ng impormasyon ay naiiba sa mga katulad na proseso sa na tinitiyak nito ang mas mataas na seguridad. Ito ay nakasisiguro sa katotohanan na ang pag-access ng iba pang mga gumagamit sa mga pamamaraan ay maaaring maibukod ganap at ganap. Papayagan nito ang administrator na magsagawa ng mga operasyon sa kanila nang nakapag-iisa, nang walang takot sa pagharang ng impormasyon o hindi awtorisadong pag-access sa database.

Paglipat ng data

Ang relasyon sa pagitan ng SQL na nakaimbak na pamamaraan at ang client application ay ang paggamit ng mga parameter at mga halaga ng pagbabalik. Ang huli ay hindi kailangang maglipat ng data sa nakaimbak na pamamaraan, gayunman ang impormasyong ito (pangunahin sa kahilingan ng user) at naproseso para sa SQL. Matapos ang proseso ng naka-imbak ay nakumpleto ang kanyang trabaho, nagpapadala ito ng mga packet ng data pabalik (ngunit, muli, kung ninanais) sa application na tinatawag na ito, gamit ang iba't ibang mga pamamaraan na maaaring magamit bilang isang tawag sa naka-imbak na pamamaraang SQL, at bumalik, halimbawa:

- Paglipat ng data gamit ang Output parameter;

- Paglipat ng data gamit ang return operator;

- Paglipat ng data gamit ang operator ng pagpili.

Ngayon tingnan natin kung paano ang proseso na ito ay nagmumukhang mula sa loob.

1. Gumawa ng EXEC na nakaimbak na pamamaraan sa SQL

Maaari kang lumikha ng isang pamamaraan sa MS SQL (Pamamahala ng Studio). Matapos ang pamamaraan ay nilikha, ito ay ililipat sa isang Programmable database node kung saan ang proseso ng paglikha ay ginaganap ng operator. Upang magsagawa, ang mga pamamaraan ng SQL na naka-imbak ay gumagamit ng isang proseso ng EXEC na naglalaman ng pangalan ng bagay mismo.

Kapag lumilikha ng isang pamamaraan, ang pangalan nito ay lilitaw muna, matapos na ang isa o higit pang mga parameter na itinalaga dito ay ginawa. Ang mga parameter ay maaaring opsyonal. Matapos ang (mga) parameter, iyon ay, ang katawan ng pamamaraan, ay nakasulat, kailangan mong magsagawa ng ilang kinakailangang operasyon.

Ang bagay ay ang katawan ay maaaring magkaroon ng mga lokal na variable na matatagpuan dito, at ang mga variable na ito ay lokal din kaugnay sa mga pamamaraan. Sa ibang salita, maaari lamang silang makita sa loob ng katawan ng pamamaraan ng Microsoft SQL Server. Ang mga naka-imbak na pamamaraan ay itinuturing na lokal.

Kaya, upang lumikha ng isang pamamaraan, kailangan namin ng pangalan ng pamamaraan at hindi bababa sa isang parameter bilang ang pamamaraan ng katawan. Tandaan na ang isang mahusay na pagpipilian sa kasong ito ay upang lumikha at magsagawa ng isang pamamaraan sa pangalan ng panukala sa classifier.

Ang pamamaraan ng katawan ay maaaring magkaroon ng anumang uri ng pahayag ng SQL, halimbawa, tulad ng paglikha ng isang talahanayan, pagpasok ng isa o higit pang mga hanay ng talahanayan, pagtatakda ng uri at likas na katangian ng database, at iba pa. Gayunpaman, ang katawan ng pamamaraan ay nagbabawal sa pagpapatupad ng ilang mga operasyon dito. Ang ilan sa mahahalagang limitasyon ay nakalista sa ibaba:

- ang katawan ay hindi dapat gumawa ng anumang iba pang nakaimbak na pamamaraan;

- Ang katawan ay hindi dapat gumawa ng maling ideya ng bagay;

- Ang katawan ay hindi dapat gumawa ng anumang mga trigger.

2. Pag-set ng isang variable sa katawan ng pamamaraan

Maaari mong gawin ang mga variable na lokal sa pamamaraan ng katawan, at pagkatapos ay ito ay matatagpuan eksklusibo sa loob ng katawan ng pamamaraan. Ang isang mahusay na kasanayan ay upang lumikha ng mga variable sa simula ng katawan ng naka-imbak na pamamaraan. Ngunit maaari ka ring magtakda ng mga variable saanman sa katawan ng bagay na ito.

Minsan mapapansin mo na maraming mga variable ay naka-set sa isang linya, at ang bawat variable na parameter ay pinaghihiwalay ng isang kuwit. Tandaan din na ang variable ay may @ prefix. Sa katawan ng pamamaraan, maaari kang magtakda ng isang variable kung saan mo nais. Halimbawa, ang variable @ NAME1 ay maaaring ipahayag na mas malapit sa dulo ng katawan ng pamamaraan. Upang italaga ang halaga ng ipinahayag na variable, isang hanay ng personal na data ang ginagamit. Sa kaibahan sa sitwasyon kung kailan higit sa isang variable ay ipinahayag sa isang linya, isang hanay lamang ng personal na data ang ginagamit sa sitwasyong ito.

Kadalasan, itatanong ng mga user ang tanong: "Paano magtalaga ng maraming halaga sa isang operator sa katawan ng pamamaraan?" Bueno. Ang tanong ay kagiliw-giliw, ngunit mas madaling gawin kaysa sa iyong iniisip. Sagot: gamit ang mga pares tulad ng "Piliin ang Var = value". Maaari mong gamitin ang mga pares na ito, na pinaghihiwalay ang mga ito gamit ang isang kuwit.

3. Paglikha ng isang SQL Stored Pamamaraan

Sa iba't ibang mga halimbawa, ipinapakita ng mga tao kung paano lumikha ng isang simpleng nakaimbak na pamamaraan at isagawa ito. Gayunpaman, ang pamamaraan ay maaaring tumagal ng mga parameter na ang proseso ng pagtawag ay magkakaroon ng mga halaga na malapit dito (ngunit hindi palaging). Kung magkasabay sila, ang mga kaukulang proseso ay magsisimula sa loob ng katawan. Halimbawa, kung lumikha ka ng isang pamamaraan na kukuha ng lungsod at rehiyon mula sa tumatawag at ibalik ang data tungkol sa kung gaano karaming mga may-akda ang may kaugnayan sa may-katuturang lungsod at rehiyon. Ang pamamaraan ay magtatanong sa mga talahanayan ng may-akda ng database, halimbawa, Mga Pub, upang isagawa ang bilang ng may-akda. Upang makuha ang mga database na ito, halimbawa, ang Google ay naglo-load ng SQL script mula sa pahina ng SQL2005.

Sa nakaraang halimbawa, ang pamamaraan ay tumatagal ng dalawang parameter, na sa Ingles ay magiging conventionally na tinatawag na @State at @City. Ang uri ng data ay tumutugma sa uri na tinukoy sa application. Ang katawan ng pamamaraan ay may panloob na mga variable @ TotalAuthors (lahat ng mga may-akda), at ang variable na ito ay ginagamit upang ipakita ang kanilang numero. Pagkatapos ay mayroong isang seksyon para sa pagpili ng query, na lahat ay binibilang. Sa wakas, ang kinakalkula na halaga ay ipinapakita sa window ng output gamit ang print operator.

Paano magsagawa ng nakaimbak na pamamaraan sa SQL

Mayroong dalawang mga paraan upang maisagawa ang pamamaraan. Ang unang landas ay nagpapakita ng mga passing parameter, dahil ang isang listahan na pinaghihiwalay ng kuwit ay isinasagawa pagkatapos ng pangalan ng pamamaraan. Ipagpalagay na mayroon tayong dalawang halaga (tulad ng sa nakaraang halimbawa). Ang mga halagang ito ay nakolekta gamit ang mga variable ng parameter ng @State at @City parameter. Mahalaga ang order sa paraan ng paglipas ng mga parameter. Ang pamamaraang ito ay tinatawag na ordinal transfer of arguments. Sa pangalawang paraan, ang mga parameter ay direktang nakatalaga, at sa kasong ito ang utos ay hindi mahalaga. Ang ikalawang paraan ay kilala bilang ang paglipat ng mga pangalang argumento.

Ang pamamaraan ay maaaring lumihis medyo mula sa tipikal. Ang lahat ay katulad ng sa nakaraang halimbawa, ngunit lamang dito ang mga parameter ay inililipat. Iyon ay, ang parameter ng @City ay unang nakaimbak, at @State ay nakaimbak sa tabi ng default na halaga. Ang default na setting ay karaniwang hiwalay. Naka-imbak na mga pamamaraan ng SQL ang pumasa bilang mga simpleng parameter. Sa kasong ito, sa ilalim ng kondisyon, ang parameter na "UT" ay pumapalit sa default na halaga na "CA". Sa ikalawang pagpapatupad, isa lamang na halaga ng argument ang ipinasa para sa parameter ng @City, at ang parameter ng @State ay tumatagal ng default na halaga ng "CA". Ang mga nakaranas ng mga programmer ay nagpapayo na ang lahat ng mga variable sa pamamagitan ng default ay matatagpuan mas malapit sa dulo ng listahan ng mga parameter. Kung hindi, ang pagsasagawa ay hindi posible, at pagkatapos ay dapat kang gumana sa paglipat ng mga pangalang argumento, na mas mahaba at mas mahirap.

4. Mga SQL Server Stored Procedures: Mga Paraan ng Pagbalik

May tatlong mahahalagang paraan upang magpadala ng data sa isang nakaimbak na pamamaraan na tinatawag. Ang mga ito ay nakalista sa ibaba:

- ibalik ang halaga ng nakaimbak na pamamaraan;

- Ang output ng naka-imbak na parameter ng proseso;

- Pumili ng isa sa mga nakaimbak na pamamaraan.

4.1 Bumabalik na mga halaga ng mga pamamaraan na nakaimbak ng SQL

Sa ganitong pamamaraan, ang pamamaraan ay nagtatalaga ng isang halaga sa isang lokal na variable at ibabalik ito. Ang pamamaraan ay maaari ring direktang ibalik ang isang pare-pareho na halaga. Sa sumusunod na halimbawa, lumikha kami ng isang pamamaraan na nagbabalik sa kabuuang bilang ng mga may-akda. Kung ihahambing mo ang pamamaraang ito sa mga nakaraang, makikita mo na ang halaga para sa pag-print ay pinalitan ng kabaligtaran.

Ngayon tingnan natin kung paano isagawa ang pamamaraan at i-output ang halaga na ibinalik dito. Ang pagpapatupad ng pamamaraan ay nangangailangan ng pagtatakda ng variable at pag-print, na isinasagawa pagkatapos ng lahat ng prosesong ito. Tandaan na sa halip na pahayag ng pag-print, maaari mong gamitin ang Select operator, halimbawa, Piliin ang @RetValue, at OutputValue din.

4.2 Lumabas sa SQL na naka-imbak na parameter ng pamamaraan

Ang halaga ng tugon ay maaaring magamit upang ibalik ang isang variable, na nakita natin sa nakaraang halimbawa. Ang paggamit ng parameter ng Output ay nagpapahintulot sa pamamaraan na magpadala ng isa o higit pang mga variable na halaga sa party na tumatawag. Ang parameter na output ay itinalaga bilang oras na ito sa pamamagitan ng keyword na "Output" kapag lumilikha ng pamamaraan. Kung ang parameter ay tinukoy bilang isang output parameter, pagkatapos ay ang pamamaraan ng object ay dapat magtalaga ng isang halaga sa ito. Naka-imbak na mga pamamaraan sa SQL, ang mga halimbawa nito ay makikita sa ibaba, pagkatapos ay ibinalik na may buod na impormasyon.

Sa aming halimbawa, mayroong dalawang mga pangalan ng output: @TotalAuthors at @TotalNoContract. Tinukoy ang mga ito sa listahan ng mga parameter. Ang mga variable na ito ay nagtatalaga ng mga halaga sa loob ng katawan ng pamamaraan. Kapag ginagamit namin ang mga parameter ng output, maaaring makita ng tumatawag ang halaga na itinakda sa katawan ng pamamaraan.

Bilang karagdagan, sa nakaraang senaryo, dalawang variable ay ipinahayag upang makita ang mga halaga na nagtatakda ng mga nakaimbak na pamamaraan ng MS SQL Server sa output parameter. Pagkatapos ay ang pamamaraan ay ginagawa sa pamamagitan ng pagbibigay ng normal na halaga ng parameter na "CA". Ang mga sumusunod na parameter ay output at, samakatuwid, ang ipinahayag na mga variable ay ipinapadala sa naitatag na order. Tandaan na kapag dumadaan ang mga variable, ang output keyword ay tinukoy din dito. Matapos matagumpay na makumpleto ang pamamaraan, ang mga halaga na ibinalik ng mga parameter ng output ay ipinapakita sa window ng mensahe.

4.3 Pumili ng isa sa mga pamamaraan ng SQL na nakaimbak

Ang pamamaraan na ito ay ginagamit upang ibalik ang isang hanay ng mga halaga bilang isang talahanayan ng data (RecordSet) sa pagtawag na nakaimbak na pamamaraan. Sa halimbawang ito, ang isang SQL na naka-imbak na pamamaraang may mga parameter ng @AuthID ay nagtatanong sa talahanayan ng Mga May-akda sa pamamagitan ng pag-filter sa mga ibinalik na tala gamit ang parameter na @AuthId na ito. Ang Select operator ay nagpapasya kung ano ang dapat ibalik sa pagtawag na nakaimbak na pamamaraan. Kapag nagsasagawa ng isang nakaimbak na pamamaraan, ang AuthId ay naipasa muli. Ang gayong pamamaraan dito ay laging nagbabalik lamang ng isang tala o wala. Ngunit ang nakaimbak na pamamaraan ay walang anumang mga paghihigpit sa pagbabalik ng higit sa isang talaan. Madalas na posible na makahanap ng mga halimbawa kung saan ang pagbabalik ng data gamit ang mga napiling parameter sa paglahok ng mga nakuhang mga variable ay nangyayari sa pamamagitan ng pagbibigay ng ilang mga halaga ng buod.

Sa konklusyon

Ang nakaimbak na pamamaraan ay isang medyo malubhang module ng software na nagbabalik o nagpapadala, at nagtatatag din ng mga kinakailangang variable sa pamamagitan ng application ng client. Dahil ang naka-imbak na pamamaraan ay isinagawa sa server mismo, ang pagpapalit ng data sa malaking volume sa pagitan ng server at ang application ng client (para sa ilang mga kalkulasyon) ay maaaring iwasan. Ito ay nagbibigay-daan sa iyo upang mabawasan ang load sa SQL server, kung saan, siyempre, napupunta sa kamay sa kamay sa kanilang mga may hawak. Ang isa sa mga subspecies ay T SQL na nakaimbak na mga pamamaraan, gayunpaman, kailangan nilang pag-aralan ng mga taong gumagawa ng mga kahanga-hangang mga database. Mayroon ding isang malaking, kahit na isang malaking bilang ng mga nuances na maaaring maging kapaki-pakinabang sa pag-aaral ng mga naka-imbak na mga pamamaraan, ngunit ito ay higit pa para sa mga plano upang makisali sa programming, kabilang ang propesyonal.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 tl.delachieve.com. Theme powered by WordPress.