ArvutidAndmebaasid

SQL salvestatud protseduurid: loomine ja kasutamine

Salvestatud protseduurid SQL on käivitatav programmimoodul, mida saab erinevate objektidena andmebaasis salvestada. Teisisõnu, see on objekt, mis sisaldab SQL avaldusi. Neid salvestatud protseduure saab rakenduse kliendis täita heade tulemuste saamiseks. Lisaks sellele nimetatakse selliseid objekte sageli muudest stsenaariumidest või isegi mõnest muust sektsioonist.

Sissejuhatus

Paljud usuvad, et nad on sarnased erinevate kõrgetasemeliste programmeerimiskeelte menetlustega (vastavalt, välja arvatud MS SQL-ile). Võib-olla on see tõesti nii. Neil on sarnased parameetrid, nad võivad anda sarnaseid väärtusi. Veelgi enam, paljudel juhtudel on nad kontaktis. Näiteks on need ühendatud andmebaasidega DDL ja DML, samuti kasutaja funktsioonidega (koodnimi - UDF).

Tegelikult SQL salvestatud protseduurid on laias valikus eeliseid, mis eristavad neid sarnaseid protsesse. Turvalisus, programmeerimise varieeruvus, tootlikkus - see kõik meelitab kasutajaid, kes töötavad andmebaasidega, rohkem ja rohkem. Populaarsuse tipphetk toimus 2005.-2010. Aastal, mil Microsoft avaldas programmi SQL Server Management Studio. Tema abiga on andmebaasidega töötamine muutunud palju lihtsamaks, praktilisemaks ja mugavamaks. Aasta-aastalt sai see infotehnoloogia meetod populaarseks programmeerijate seas. Täna on MS SQL Server täiesti tuttav programm, mis andmebaasidele "suhtlemiseks" kasutajatele on tõusnud koos Exceliga.

Kui menetlust nimetatakse, töötleb see kohe serverit ise, ilma tarbetute protsesside ja kasutaja sekkumiseta. Pärast seda võite teha mis tahes toiminguid teabega: kustutamine, täitmine, muutus. Kogu selle eest vastutab DDL-operaator, kes täidab ainukeselt objektide keerukamat töötlemist. Ja kõik see juhtub väga kiiresti ja serverit ei laadita tegelikult. See kiirus ja jõudlus võimaldavad teil väga kiiresti edastada suurel hulgal teavet kasutajalt serverisse ja vastupidi.

Selle tehnoloogia rakendamiseks informatsiooni tööks on mitu programmeerimiskeele. Nende hulka kuuluvad näiteks PL / SQL Oracle'i andmebaasi haldussüsteemist , PSQL InterBase'i ja Firebird-süsteemidest ning klassikaline Microsoft Transact-SQL. Kõik need on mõeldud salvestatud protseduuride loomiseks ja täitmiseks, mis võimaldab suured algoritmid suured andmebaasi haldajad kasutada. Samuti on vaja, et need, kes seda teavet haldavad, kaitseksid kõiki objekte kolmandate isikute volitamata juurdepääsu eest ja loeksid, muudaksid või kustutaksid teatud andmeid.

Tootlikkus

Neid andmebaasiobjekte saab programmeerida mitmel viisil. See võimaldab kasutajatel valida kasutatava meetodi tüübi, mis on kõige sobivam, mis säästab aega ja vaeva. Lisaks sellele töödeldakse protseduuri ise, mis väldib serveri ja kasutaja vahel vahetamise tohutut aega. Samuti saab modulit ümber programmeerida ja muuta soovitud suunas igal ajal. Eriti tasub märkida kiirus, millega SQL-i salvestatud protseduur käivitub: see protsess on kiirem kui teised, sarnaneb sellega, mis muudab selle mugavaks ja mitmekülgseks.

Turvalisus

Seda tüüpi teabe töötlemine erineb sarnastest protsessidest, sest see tagab suurema turvalisuse. Seda tagab asjaolu, et teiste kasutajate juurdepääsu protseduuridele saab täielikult ja täielikult välistada. See võimaldab administraatoril viia läbi toiminguid nendega sõltumatult, kartmata teabe pealtkuulamist või lubamatut juurdepääsu andmebaasile.

Andmeedastus

SQL-i salvestatud protseduuri ja klientrakenduse suhe on parameetrite kasutamine ja tagasiside väärtused. Viimane ei pea andmete salvestamist salvestatud protseduurile üle kandma, kuid seda teavet (peamiselt kasutaja taotlusel) ja seda töödeldakse SQL-i jaoks. Pärast seda, kui salvestatud protseduur on oma töö lõpetanud, saadab ta andmepaketid tagasi (kuid soovi korral uuesti) rakendusele, mis seda kutsus, kasutades erinevaid meetodeid, mida saab kasutada salvestatud protseduuri SQL kutsumiseks ja tagastada, näiteks:

- andmeedastus, kasutades väljundparameetrit;

- andmeedastus, kasutades tagasisaatmisoperatsiooni;

- andmeedastus valitud operaatoriga.

Nüüd vaatame, kuidas see protsess seestpoolt välja näeb.

1. Loo EXEC-i salvestatud protseduur SQL-is

Saate luua protseduuri MS SQL-s (Managment Studio). Pärast protseduuri loomist suunatakse see programmeeritava andmebaasi sõlmpunkti, kus käitaja loob protseduuri. SQL-i salvestatud protseduuride täitmiseks kasutatakse EXEC-protsessi, mis sisaldab objekti enda nime.

Protsessi loomisel ilmub tema nimi esmalt, pärast mida on loodud üks või mitu parameetrit. Parameetrid võivad olla valikulised. Kui parameeter (id), see tähendab protseduuri keha, on kirjutatud, peate teostama mõningaid vajalikke toiminguid.

Asi on selles, et organil võivad olla selles paiknevad kohalikud muutujad ja need muutujad on ka kohalike protseduuridega seotud. Teisisõnu saab neid vaadata ainult Microsofti SQL Serveri protseduuri kehas . Salvestatud protseduure peetakse kohalikuks.

Protsessi loomiseks peame protseduurinimeks kasutama protseduuri nime ja vähemalt ühte parameetrit. Pange tähele, et antud juhul on suurepärane võimalus luua ja täita protseduuri klassifikaatori skeemi nimega.

Näiteks võib protseduurikorraldusel olla mis tahes SQL avaldus, näiteks tabeli loomine, ühe või mitme tabeli rida sisestamine, andmebaasi tüübi ja olemuse määramine jne. Sellest hoolimata piirab menetluse sisu teatud toimingute teostamist. Mõned olulised piirangud on loetletud allpool:

- asutus ei tohiks luua muud salvestatud protseduuri;

- keha ei tohiks luua objekti vale ettekujutust;

- Keha ei tohiks luua mingeid käivitujaid.

2. Muutuja määramine menetluse põhiosas

Võite teha muutujaid, mis on kohaliku keha protseduuriga, ja siis asetsevad nad ainult protseduuri kehas. Hea tava on luua muutujad salvestatud protseduuri keha alguses. Kuid võite määrata ka selle objekti kehas kõik muutujad.

Mõnikord märkate, et ühes reas on määratud mitu muutujat ja iga muutuja parameeter on komaga eraldatud. Samuti pidage meeles, et muutujaga on @ prefiks. Menetluse kehas saate määrata muutuja, kus soovite. Näiteks võib muutuja @ NAME1 olla protseduuri keha lõppu lähemal tuvastatud. Deklareeritud muutuja väärtuse määramiseks kasutatakse isikuandmete kogumit. Vastupidiselt olukorrale, kui ühes reas deklareeritakse rohkem kui üks muutuja, kasutatakse selles olukorras ainult üht isikuandmete kogumit.

Sageli küsivad kasutajad küsimust: "Kuidas määrata protseduuri põhiosas mitu väärtust ühes operaatoris?" Noh. Küsimus on huvitav, kuid seda on palju lihtsam teha kui arvate. Vastus: kasutades selliseid paare nagu "Vali var = väärtus". Saate neid paare kasutada, eraldades need komadega.

3. SQL-i salvestatud protseduuri loomine

Erinevates näidetes näitavad inimesed, kuidas lihtsat salvestatud protseduuri luua ja seda käivitada. Kuid protseduur võib võtta selliseid parameetreid, et kutsumisprotsessil on väärtused, mis on selle lähedal (kuid mitte alati). Kui need kokku langevad, algavad vastavad protsessid kehas. Näiteks kui loote protseduuri, mis võtab helistajalt linna ja piirkonna ning annab andmed selle kohta, kui palju autoreid on seotud asjaomase linna ja piirkonnaga. See protseduur küsib andmebaasi autorite tabelid, näiteks Pubid, selle autorite lugemiseks. Nende andmebaaside saamiseks laadib Google SQL-i skripti SQL2005 lehelt.

Eelmises näites on protseduuris kaks parameetrit, mida ingliskeelsena tavapäraselt nimetatakse @State ja @City. Andmetüüp vastab rakenduses määratletud tüübile. Korralduse sisuks on sisemised muutujad @ TotalAuthors (kõik autorid) ja seda muutujat kasutatakse nende numbrite kuvamiseks. Siis on sektsioon päringu valimiseks, mis kõik loeb. Lõpuks kuvatakse arvutuslik väärtus väljundaknas prindipea abil.

SQL-i salvestatud protseduuri käivitamine

Menetluse läbiviimiseks on kaks võimalust. Esimene rada näitab läbitavaid parameetreid, kuna komaga eraldatud loend täidetakse pärast protseduuri nime. Oletame, et meil on kaks väärtust (nagu eelmises näites). Neid väärtusi kogutakse, kasutades @State ja @City protseduuri parameetrite muutujaid. Paranduste edastamisel on oluline järjekord. Seda meetodit nimetatakse argumentide järjestikuseks ülekandeks. Teises meetodis on parameetrid juba otseselt määratud ja sel juhul ei ole järjekord oluline. Seda teist meetodit nimetatakse nimega argumentide edastamiseks.

Protseduur võib mõnevõrra erineda tüüpilisest. Kõik on samasugused nagu eelmises näites, kuid siin ainult parameetrid nihutatakse. See tähendab, et parameeter @City salvestatakse kõigepealt ja @State salvestatakse vaikimisi väärtuse kõrval. Vaikeseade on tavaliselt eraldi. Salvestatud SQL-protseduurid läbivad lihtsad parameetrid. Sellisel juhul asendab parameeter "UT" tingimusel vaikeväärtust "CA". Teises teostuses edastatakse parameetri @ City ainult üks argumentide väärtus ja @State parameeter võtab "CA" vaikeväärtuse. Kogenud programmeerijad soovitavad, et kõik muutujad asuksid vaikimisi parameetrite loendi lõpus. Vastasel korral ei ole täitmine võimalik, ja siis peate tegema nimega argumentide ülekande, mis on pikem ja raskem.

4. SQL Serveri salvestatud protseduurid: tagastusmeetodid

Andmeid salvestatud protseduurile kutsutakse kolmeks oluliseks viisiks. Need on loetletud allpool:

- tagastab salvestatud protseduuri väärtuse;

- salvestatud protseduuri parameetri väljund;

- Valige üks salvestatud protseduuridest.

4.1 SQL-i salvestatud protseduuride väärtuste tagastamine

Selle meetodi puhul määrab protseduur kohaliku muutuja väärtuse ja tagastab selle. Protseduur võib ka otseselt tagasi tuua konstantse väärtuse. Järgmises näites loonud korra, mis tagas autorite koguarvu. Kui võrrelda seda protseduuri varasematega, näete, et printimise väärtus asendatakse vastupidise väärtusega.

Nüüd vaatame, kuidas protseduuri käivitada ja väljastada sellele tagastatud väärtus. Menetluse läbiviimiseks on vaja määrata muutuja ja trükkimine, mis viiakse läbi kogu selle protsessi vältel. Pange tähele, et trükise avalduse asemel saate kasutada optsiooni Select, näiteks Select @RetValue ja ka OutputValue.

4.2 Väljuge SQL-i salvestatud protseduuri parameetrist

Vastuse väärtust saab kasutada ühe muutuja tagastamiseks, mida nägime eelmises näites. Väljundparameetri kasutamine võimaldab protseduuril saata ühele või mitmele muutuja väärtusele kõne poolele. Väljundparameeter määratakse sellel ajal selle märksõna "Output" meetodi loomisel. Kui parameeter on määratud väljundparameetrina, siis peab protseduuri objekt määrama sellele väärtuse. Salvestatud SQL-protseduurid, mille näiteid võib näha allpool, saadetakse koos kokkuvõtliku teabega.

Meie näites on kaks väljundnimed: @TotalAuthors ja @TotalNoContract. Need on täpsustatud parameetrite loendis. Need muutujad määravad väärtused protsessi kehas. Kui me kasutame väljundparameetreid, võib helistaja näha protseduuri kehas olevat väärtust.

Lisaks sellele deklareeritakse eelmises stsenaariumis kaks muutujat, et näha väärtusi, mis määravad väljundparameetris MS SQL Serveri salvestatud protseduurid. Seejärel tehakse protseduur, esitades parameetri "CA" normaalväärtuse. Järgmised parameetrid väljastatakse ja seetõttu edastatakse deklareeritud muutujad kindlaksmääratud järjekorras. Pidage meeles, et muutujate üleviimisel määrab siinkohal ka väljund märksõna. Kui protseduur on edukalt lõpule viidud, kuvatakse väljundparameetrite tagastatud väärtused sõnumiaknas.

4.3 Valige üks SQL salvestatud protseduuridest

Seda tehnikat kasutatakse väärtuste komplekti tagamiseks helistamisel salvestatud protseduuride tabelis (RecordSet). Selles näites SQL-i salvestatud protseduur koos @AuthID-parameetritega küsib autorite tabelit, filtreerides tagastatud kirjeid, kasutades seda @AuthId parameetrit. Operaator Select määrab, mis tuleks helistamisel salvestatud protseduurile tagasi anda. Salvestatud protseduuri käivitamisel läheb AuthId tagasi. Selline protseduur tagastab alati alati ainult ühe rekordi või üldse mitte. Kuid salvestatud protseduuril ei ole mingeid piiranguid enam kui ühe rekordi tagastamisele. Tihti on võimalik leida näiteid, mille puhul andmete hankimine valitud parameetrite abil koos arvutatud muutujatega toimub, esitades mitu kokkuvõtvat väärtust.

Kokkuvõtteks

Salvestatud protseduur on üsna tõsine tarkvara moodul, mis tagastab või edastab, ning loob ka vajalikud rakendusmuutujad. Kuna salvestatud protseduur käivitatakse serveris, võib serverite ja kliendirakenduste vahelises suures koguses andmevahetust (mõnede arvutuste puhul) vältida. See võimaldab teil vähendada SQL serveri koormust, mis loomulikult käib käsikäes nende omanikele. Üks alamliikidest on T SQL-i salvestatud protseduurid, kuid neid on vaja uurida neid, kes loovad muljetavaldavaid andmebaase. Samuti on suur, isegi tohut hulk nüansse, mis võivad olla kasulikud salvestatud protseduuride uurimisel, kuid see on rohkem neile, kes kavatsevad osaleda programmitöös, ka professionaalselt.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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