Komputiloj, Datumbazoj
SQLa stokita proceduroj: krei kaj uzo
SQLa stokita proceduroj estas plenumebla programo modulo kiu povas esti stokita en la datumbazo en la formo de diversaj objektoj. Alivorte, ĝi estas objekto enhavanta SQL-deklaro. Tiuj stokita proceduroj eblas ekzekutita en la kliento apliko por ricevi bonan rendimenton. Krome, tiaj instalaĵoj ofte estas nomitaj de aliaj skriptoj aŭ eĉ de ajna alia sekcio.
enkonduko
Multaj homoj kredas, ke ili estas similaj al la proceduroj de la diversaj altnivela programlingvoj (respektive, krom MS SQL). Eble ĉi tiu estas vera. Ili havas similajn parametrojn, ili povas elsendi similan valoron. Krome, en iuj kazoj, ili venis en kontakto. Ekzemple, ili kombinas kun datumbazoj de DDL kaj la DML datumoj, tiel kiel uzanto funkcioj (nomo en - UDF).
Efektive stokita SQLa proceduroj havas larĝan gamon de avantaĝoj kiuj distingas ilin inter tiaj procezoj. Sekureco, ŝanĝebleco programado produktiveco - ĉiuj ĉi altiras uzantoj laboras kun datumbazoj, pli kaj pli. La pinto de populareco venis proceduroj por la jaroj 2005-2010, kiam mi ricevis la programo de la "Microsoft" sub la nomo «SQLa Servilo Management Studio». Kun lia helpo, laboro kun datumbazoj fariĝis multe pli facile, pli praktika kaj pli oportuna. Jaro post jaro, ĉi tiu metodo de transdoni informon gajnis popularecon en la programado medio. Hodiaŭ, MS SQL Server estas absolute kutima programo, kiu por la uzantoj "komuniki" kun datumbazoj, staris la paro kun "Excel".
Kiam vi nomas la procedo, oni senprokraste traktitaj per la servilo sen nenecesaj procezoj kaj uzanto interveno. Vi povas plenumi ian ajn agon kun la informoj: forigo, ekzekuto, ŝanĝo. Super ĉio ĉi estas en la DDL-operatoro, kiu sole plenumi kompleksajn agojn sur tiuj objektoj. Kaj ĉiuj okazas tre rapide, kaj la servo ne vere ŝarĝis. Tiu rapideco kaj produktiveco lasis vin rapide transdoni grandajn kvantojn de informo de la uzanto al la servilo kaj inverse.
Por efektivigi ĉi tiun verkon kun la informoj, estas pluraj programlingvoj teknologioj. Tiuj inkluzivas, ekzemple, PL / SQL de la datumbazo mastrumado sistemo Oracle, PSQL en Interbase kaj Firebird sistemoj, tiel kiel la klasika "maykrosoftovskih» klopodi-SQL. Ĉiuj ili estas desegnita por krei kaj ruli stokita proceduroj, permesante vin uzi siajn proprajn algoritmojn sur granda datumbazo manipuladores. Estas necese kaj certigi ke tiuj kiuj efektivigi mastrumado de tiaj informoj, povas protekti ĉiuj objektoj de senpermesa triaj kaj, sekve, la kreo, modifo aŭ forigo de iuj datumoj.
produktiveco
Tiuj datumbazo objektoj povas plani en malsamaj manieroj. Tiu ebligas al la uzantoj elekti la tipon de procezo kiu estus la plej konvena, kio ŝparas tempon kaj energion. Krome, la procedo mem procesas, evitante granda tempo elspezita por komunikado inter la servilo kaj la uzanto. La modulo eblas reprogramis kaj ŝanĝis en la ĝustan direkton en absolute ajn. Precipe notinde la rapido kun kiu la ĵeto de SQLa stokita procedo okazas: la procezo estas pli rapida aliaj similaj al ĝi, tial estas konvena kaj versátiles.
sekureco
Tiu tipo de informoj prilaborado diferencas de similaj procezoj en tio ĝi provizas plibonigita sekureco. Tiu estas certigita de la fakto, ke aliaj uzantoj aliru proceduroj povas forigitaj tute. Ĉi tio permesos al la Administranto por realigi operaciojn kun ili sendepende, sen timo de interkapto aŭ nerajtigitan aliron al datumbazo.
transporto de datumoj
Komunikado inter stokita SQLa procedo kaj la kliento apliko estas uzi la parametrojn kaj reveni valoroj. Tiu lasta estas necese transdoni la datumojn al stokita procedo, sed la informoj (ĉefe sur la uzanto peto), kaj procesis por SQL. Unufoje stokita procedo kompletigis lian laboron, ĝi sendas la datumojn pakaĵoj reen (sed, denove, se dezirata) al la nomante apliko uzante diversaj metodoj per kiuj estas efektivigeblaj kiel alvoko al stokita SQLa procedo kaj reveno, ekzemple:
- transdono de datumoj per Eligo parametron tipo;
- transdono de datumoj per la reveno deklaro;
- Datumoj transdono vojo portanto selektado.
Kaj nun rigardu, kiel tiu procezo aspektas la samaj ene.
1. Krei EXEC-stokita en la SQL procedo
Vi povas krei procedo en MS SQL (Managment Studio). Post la procedo estas kreita, ĝi estas listigita sur programable datumbazo nodo, en kiu la proceduro estas farata per la operatoro de kreo. Por fari SQL stokita proceduroj uzante EXEC-procezo kiu enhavas la celon nomo.
Kiam kreante la nomo venas unua procedo, kaj tiam faris unu aŭ pli parametroj kiuj estas asignita al li. Parametroj povas esti nedeviga. Post la parametron (j), tio estas la korpo de la proceduro, por esti skribita, estas necese realigi iu necesa operacioj.
La fakto ke la korpo povas havi lokajn variablojn, lokita en ĝi, kaj ĉi tiuj variabloj estas lokaj kaj rilate al la proceduroj. Alivorte, oni povas konsideri nur ene de la korpo traktoj Microsoft SQLa Servilo. Stokita proceduroj en ĉi tiu kazo estas konsideritaj lokaj.
Tiel, por krei procezo, ni bezonas procedo nomo kaj almenaŭ unu parametro kiel procedo korpo. Bonvolu noti, ke bonega elekto en ĉi tiu kazo estas la kreo kaj efektivigo de proceduroj kun skemo nomon en la klasifikilo.
La procedo korpo povas havi ian ajn operatoroj SQL, ekzemple, ekzemple krei tablon enmeto unu aŭ pli vicoj de la tablo, establi la tipon de datumbazo kaj karaktero, kaj tiel plu. Tamen, la procedo korpo restriktu iu operacioj en ĝi. Iuj el la plej gravaj limigoj estas listigitaj malsupre:
- la korpo ne krei ajna alia stokita procedo;
- la korpo devas krei falsan impreson pri la objekto;
- la korpo ne kreas ajnan ekigiloj.
2. Fiksita la variablo en la korpo de la proceduro
Vi povas fari variabloj lokaj al la procedo de la korpo, kaj ili estos al ene de procedo korpo. Bona praktiko estas krei variablon komence de la stokita procedo korpo. Sed vi povas ankaŭ agordi variabloj ie ajn en la korpo de la objekto.
Kelkfoje vi eble rimarkos, ke kelkaj variabloj estas en la sama vico, kaj ĉiu variablo apartigita per komo. Ankaŭ rimarku ke la variablo estas prefiksita per @. En la korpo de la proceduro, vi povas agordi variablon al kiu vi volas. Ekzemple, variablo @ Nomo 1 povas esti anoncita al la fino de la procedo korpo. Por atribui valoron al variablo deklarita uzante aron de personaj datumoj. Kontraste al la situacio kiam pli ol unu variablo deklaris en la sama vico, nur unu aro de personaj datumoj uzitaj en tiu situacio.
Uzantoj ofte demandi la demandon: "Kiel atribui plurajn valorojn en sola deklaro en la korpo de la proceduro? Nu. Interesaj demando, sed tio estas multe pli facila ol vi pensas. La respondo: helpe de tiaj paroj kiel «Elektu Var = valoro '. Vi povas uzi ĉi tiujn parojn, apartigitaj per komoj.
3. Krei SQL stokita procedo
En larĝa gamo da ekzemploj de homoj montras krei simplan stokita procedo kaj plenumado. Tamen, la procedo povas preni tian parametroj kiuj kunvokado procezo havos valoron proksime al ĝi (sed ne ĉiam). Se ili koincidas, tiam komenciĝas la respondaj procezoj ene de la korpo. Ekzemple, se vi kreas proceduro kiu prenos la urbo kaj regiono de la telefonanto kaj redoni la datumojn pri kiom la aŭtoroj uzas la respondan urbo kaj regiono. La proceduro estos konsulti datumbazo tabelo de aŭtoroj, ekzemple, Pubs, por fari tiun kalkulon aŭtoroj. Akiri tiujn datumbazojn, ekzemple, la Google elŝutas la SQL-skripto kun SQL2005 paĝo.
En la antaŭa ekzemplo, la procedo prenas du parametrojn, kio en la angla estus nomitaj kondiĉe @State kaj @City. La datumtipo respondas al la tipo specifita en la apliko. La procedo korpo havas internajn variablojn @TotalAuthors (ĉiuj aŭtoroj), kaj ĉi tiu variablo estas uzata por montri ilian nombron. Sekva venas sekcion elekto peto ke ĉiuj grafoj. Fine, la kalkulita valoro estas montrita en la eligo fenestro uzante la print instrukcio.
Kiel fari SQL stokita procedo
Estas du manieroj fari la proceduron. La unua maniero estas montrita per pasanta parametrojn kiel komo-disigita listo estas farita post kiam la procedo nomo. Supozi ni havas du valorojn (kiel en la antaŭa ekzemplo). Ĉi tiuj valoroj estas kolektitaj uzante variabloj kaj @State @City procedo. En ĉi tiu metodo, gravaj parametroj de la transdono ordo. Tiu metodo estas nomita la transdono sinsekvo de argumentoj. En la dua metodo, la parametroj estas jam asignita rekte, en kiu kazo la ordo ne estas grava. Tiu dua metodo estas konata kiel la transdono de nomita argumentoj.
La procedo eble iomete devias de la tipa. Malgraŭ tio, kiel en la antaŭa ekzemplo, sed la parametroj estas ŝanĝiĝis ĉi tie nur. Jen @City parametro estas stokita unua, kaj @State stokita apud la defaŭlta valoro. La defaŭlta agordo ĝenerale asignita aparte. SQLa stokita proceduroj estas tiel simplaj parametroj. En ĉi tiu kazo, se la opcio "la UT 'anstataŭigas la defaŭltan valoron de" CA ". En dua enkorpiĝo pasas nur unu argumento valoro por @City kaj @State opcion defaŭltoj al "CA". Spertaj programistoj konsilas ke ĉiuj defaŭlta variabloj estas lokita pli proksime al la fino de la parametro listo. Alie, la ekzekuto ne eblas, vi devas labori kun la kopio de nomita argumentoj, ke la pli longa kaj pli komplikaj.
4. Stokita Proceduroj SQLa Servilo: vojoj de revenanta
Ekzistas tri ĉefaj manieroj por sendi datumojn stokitaj en la nomita proceduro. Ili estas listigitaj malsupre:
- reveno valoroj stokita procedo;
- Eligo parametron stokita proceduroj;
- Elektu unu el la stokita proceduroj.
4.1 Reveno valoroj de SQL stokita proceduroj
En ĉi tiu proceduro, la procedo difinas la valoron de la loka variablo kaj revenas ĝi. La procedo povas ankaŭ rekte reveni konstanta valoro. En la sekva ekzemplo, ni kreis proceduro kiu revenas la totala nombro de sponsoroj. Se ni komparas tion kun la antaŭa procedo, Vi povas vidi, ke la valoro de presita estas anstataŭita de la reverso.
Nun ni rigardu kiom por plenumi la proceduron kaj montri la valoron, redoni ĝin. Performing proceduroj postulata por establi kaj variablo presado, kiu efektivigas post la procezo. Avizo ke anstataŭ presi la operatoro povas uzi la Elekti-operatoro, ekzemple, Elekti @RetValue kaj OutputValue.
4.2 Produktado Parametro SQLa stokita proceduroj
La respondo valoro povas esti uzata por redoni sola variablo kiun ni vidis en la antaŭa ekzemplo. Uzante la Eligo permesas la procedo por sendi unu aŭ pluraj variabloj al la nomante partio. Eligo parametron estas signifita kiel tempo ĉi ŝlosila vorto «produktadon» kiam kreante procedo. Se la parametro estas specifita kiel produktadon parametron, la procedo objekto devas atribui al ĝi valoron. Stokita proceduroj SQL, ekzemploj de kiuj povas vidi sube, en tia okazo reveni al la fina informo.
En ĉi tiu ekzemplo, estos du semajnfinoj nomo: @TotalAuthors kaj @TotalNoContract. Ili estas specifita en la parametron listo. Tiuj variabloj estas asignita valorojn ene de la procedo korpo. Kiam ni uzas la eligo parametroj, la telefonanto povas vidi la valoro metita en la procedo korpo.
Krome, en la antaŭa scenaro, du variabloj estas deklaritaj por vidi la valorojn kiuj estas instalita stokita proceduroj, MS SQL Server kiel produktadon parametron. Tiam la procedo estas farita per aplikanta la normala valoro «CA» parametron. La jenaj parametroj estas produktado kaj, tial, deklaris variabloj estas pasis en la preskribita maniero. Bonvolu noti, ke kiam varia produktado ŝlosilvorto ankaŭ specifita ĉi tie. Post la procedo estas kompletigita sukcese, la valoro revenis uzante la eligo parametroj estas montrita sur la mesaĝo fenestro.
4.3 Selekti SQLa stokita proceduroj
Tiu tekniko estas uzata por redoni aro en la formo tablo datumoj valoroj (RecordSet) por nomi al stokita procedo. En ĉi tiu ekzemplo, SQLa stokita procedo kun parametroj @AuthID petas tablon "aŭtoroj" de filtri la diskojn revenis per tiu parametron @AuthId. Elektu operatoro decidas kio devus esti redonita al la nomante stokita procedo. Kiam stokita procedo AuthId transdonitaj reen. Tia procedo estas ĉiam revenas nur unu rekordon aŭ neniu ajn. Tamen, la stokita procedo ne havas limigojn en la reveno de pli ol unu eniron. Ofte ekzemploj troviĝas en kiu la reveno datumoj elektitaj uzante parametroj kun la kalkulita variabloj estas farita per provizi pluralidad de totala valorojn.
Konklude
Al stokita procedo estas bela serioza programo, revenis aŭ transdonita, tiel kiel establi la necesajn variablojn pro la kliento apliko. Ekde la stokita procedo estas ekzekutita en la servilo mem, datumoj interŝanĝo en grandaj volumoj inter la servilo kaj la kliento apliko (por iuj ŝtonoj) povas esti evitita. Tiu ebligas redukti la ŝarĝon sur la SQL-servilo, kiu, kompreneble, estas la mano de iliaj posedantoj. Unu el la subspecioj estas stokita proceduroj T SQL, sed ilia studo necesas por tiuj implikitaj en la kreo de impresa datumbazo. Estas ankaŭ granda, eĉ grandega kvanto de nuancoj kiu povas esti utila en la studo de stokita proceduroj, tamen, ĉi tiu bezono por tiuj, kiuj planas fari firme programado, inkluzive profesie.
Similar articles
Trending Now