Kompjutera, Bazat e të dhënave
Procedurat e ruajtur SQL: Krijimi dhe Përdorimi
Procedurat e ruajtur SQL është një modul i programueshëm i ekzekutueshëm që mund të ruhet në një bazë të dhënash si objekte të ndryshme. Me fjalë të tjera, është një objekt që përmban deklarata SQL. Këto procedura të ruajtura mund të ekzekutohen në klientin e aplikacionit për të marrë performancë të mirë. Përveç kësaj, objekte të tilla shpesh thirren nga skenarë të tjerë apo edhe nga ndonjë seksion tjetër.
paraqitje
Shumë besojnë se ato janë të ngjashme me procedurat e gjuhëve të ndryshme të programimit të nivelit të lartë (respektivisht, me përjashtim të MS SQL). Ndoshta, është vërtet kështu. Ata kanë parametra të ngjashëm, mund të japin vlera të ngjashme. Për më tepër, në një numër rastesh ata janë në kontakt. Për shembull, ato janë të kombinuara me bazat e të dhënave DDL dhe DML, si dhe me funksione të përdoruesit (emri i kodit - UDF).
Në fakt, procedurat e ruajtura në SQL kanë një gamë të gjerë përparësish që i dallojnë ato nga proceset e ngjashme. Siguria, ndryshueshmëria e programimit, produktiviteti - e gjithë kjo tërheq përdoruesit që punojnë me bazat e të dhënave, gjithnjë e më shumë. Kulmi i popullaritetit të procedurave ka ndodhur në 2005-2010, kur Microsoft lëshoi një program të quajtur SQL Server Management Studio. Me ndihmën e saj, puna me bazat e të dhënave është bërë shumë më e lehtë, më praktike dhe më e përshtatshme. Nga viti në vit kjo metodë e transferimit të informacionit ka fituar popullaritet mes programuesve. Sot, MS SQL Server është program absolutisht i njohur, i cili për përdoruesit që "komunikojnë" me bazat e të dhënave, është rritur së bashku me "Excel".
Kur thirret një procedurë, përpunohet menjëherë nga serveri vetë, pa procese të panevojshme dhe ndërhyrje të përdoruesit. Pas kësaj, ju mund të bëni ndonjë veprim me informacione: fshirje, ekzekutim, ndryshim. Për të gjithë këtë është përgjegjësi e operatorit DDL, i cili kryen vetëm përpunimin më kompleks të objekteve. Dhe e gjithë kjo ndodh shumë shpejt, dhe serveri nuk është i ngarkuar. Kjo shpejtësi dhe performanca ju lejon që shumë shpejt të transferoni sasi të mëdha informacioni nga përdoruesi në server dhe anasjelltas.
Për të zbatuar këtë teknologji me informacionin, ekzistojnë disa gjuhë programimi. Këto përfshijnë, për shembull, PL / SQL nga sistemi i menaxhimit të bazës së të dhënave Oracle, PSQL në sistemet InterBase dhe Firebird, si dhe klasik "Microsoft Transact-SQL". Të gjithë ata janë të dizajnuara për të krijuar dhe ekzekutuar procedurat e ruajtura, të cilat lejojnë përdorimin e algoritmeve të mëdha në përdoruesit e mëdhenj të bazës së të dhënave. Është gjithashtu e nevojshme për ata që menaxhojnë një informacion të tillë për të mbrojtur të gjitha objektet nga aksesi i paautorizuar nga palët e treta dhe, në përputhje me rrethanat, krijojnë, ndryshojnë ose fshijnë të dhëna të caktuara.
prodhimtari
Këto objekte të bazës së të dhënave mund të programohen në mënyra të ndryshme. Kjo i lejon përdoruesit të zgjedhin llojin e metodës së përdorur, e cila do të jetë më e përshtatshme, gjë që kursen kohë dhe përpjekje. Përveç kësaj, procedura vetë është përpunuar, e cila shmang kohën e madhe të shpenzuar për shkëmbimin midis serverit dhe përdoruesit. Gjithashtu, moduli mund të riprogramohet dhe ndryshohet në drejtimin e dëshiruar në çdo kohë. Veçanërisht vlen të përmendet shpejtësia me të cilën fillon procedura e ruajtjes së SQL-it: ky proces është më i shpejtë se të tjerët, ngjashëm me të, gjë që e bën të përshtatshëm dhe të gjithanshëm.
siguri
Ky lloj i përpunimit të informacionit ndryshon nga proceset e ngjashme në atë që garanton një siguri më të madhe. Kjo sigurohet nga fakti që qasja e përdoruesve të tjerë në procedurat mund të përjashtohet tërësisht dhe tërësisht. Kjo do të lejojë administratorin që të kryejë operacione me ta në mënyrë të pavarur, pa frikë nga përgjimi i informacionit ose qasja e paautorizuar në bazën e të dhënave.
Transferimi i të dhënave
Marrëdhënia ndërmjet procedurës së ruajtur SQL dhe aplikacionit të klientit është përdorimi i parametrave dhe vlerave të kthimit. Kjo e fundit nuk ka nevojë të transferojë të dhënat në procedurën e ruajtur, megjithatë ky informacion (kryesisht në kërkesën e përdoruesit) dhe të përpunuara për SQL. Pasi që procedura e ruajtur të ketë përfunduar punën e saj, ai dërgon paketat e të dhënave përsëri (por, përsëri, nëse dëshiron) tek aplikacioni që e quajti atë, duke përdorur metoda të ndryshme që mund të përdoren si thirrje për SQL procedurën e ruajtur dhe të kthehen, për shembull:
- transferimi i të dhënave duke përdorur parametrin Output;
- transferimi i të dhënave duke përdorur operatorin e kthimit;
- transferimi i të dhënave duke përdorur operatorin e përzgjedhjes.
Tani le të shohim se si ky proces del nga brenda.
1. Krijoni një procedurë të ruajtur në EXEC në SQL
Ju mund të krijoni një procedurë në MS SQL (Managment Studio). Pasi të krijohet procedura, ajo do të transferohet në një nyje të programueshme të bazës së të dhënave në të cilën procedura e krijimit kryhet nga operatori. Për të ekzekutuar, procedurat e ruajtura SQL përdorin një proces EXEC që përmban emrin e vetë objektit.
Kur krijohet një procedurë, emri i tij shfaqet i pari, pas së cilës prodhohen një ose më shumë parametra të caktuar. Parametrat mund të jenë opsionale. Pasi të jenë shkruar parametrat (et), dmth, trupi i procedurës, ju duhet të kryeni disa operacione të nevojshme.
Çështja është që trupi mund të ketë variabla lokalë të vendosur në të, dhe këto variabla janë lokale edhe në lidhje me procedurat. Me fjalë të tjera, ato mund të shihen vetëm brenda trupit të procedurës së Microsoft SQL Server. Procedurat e ruajtur pastaj konsiderohen lokale.
Pra, për të krijuar një procedurë, ne kemi nevojë për një emër të procedurës dhe të paktën një parametër si trupin e procedurës. Vini re se një opsion i shkëlqyer në këtë rast është krijimi dhe ekzekutimi i një procedure me emrin e skemës në klasifikuesin.
Trupi i procedurës mund të ketë çdo lloj deklarate SQL, për shembull, të tilla si krijimi i një tabele, futja e një ose më shumë rreshtave të tabelave, vendosja e llojit dhe natyrës së bazës së të dhënave, e kështu me radhë. Megjithatë, trupi i procedurës kufizon ekzekutimin e disa operacioneve në të. Disa nga kufizimet e rëndësishme janë renditur më poshtë:
- trupi nuk duhet të krijojë ndonjë procedurë tjetër të ruajtur;
- Trupi nuk duhet të krijojë një ide false të objektit;
- Trupi nuk duhet të krijojë asnjë shkak.
2. Vendosja e një variable në trupin e procedurës
Ju mund t'i bëni variablat lokalë në procedurën e trupit dhe pastaj ata do të vendosen ekskluzivisht brenda trupit të procedurës. Një praktikë e mirë është krijimi i variablave në fillim të trupit të procedurës së ruajtur. Por gjithashtu ju mund të vendosni variablat kudo në trupin e këtij objekti.
Ndonjëherë do të vëreni se disa variabla janë vendosur në një rresht, dhe secili parametër i ndryshueshëm është i ndarë nga një presje. Gjithashtu vini re se variabli ka prefiksin @. Në trupin e procedurës, mund të vendosni një ndryshore ku të doni. Për shembull, ndryshuesi @ NAME1 mund të deklarohet më afër fundit të trupit të procedurës. Për të caktuar vlerën e ndryshores së deklaruar, përdoret një grup i të dhënave personale. Në kontrast me situatën kur deklarohen më shumë se një ndryshore në një rresht, vetëm një grup i të dhënave personale përdoret në këtë situatë.
Shpesh përdoruesit bëjnë pyetjen: "Si t'i caktoni vlera të shumta në një operator në trupin e procedurës?" Epo. Pyetja është interesante, por është shumë më e lehtë për të bërë se sa mendoni. Përgjigje: përdorimi i çifteve të tilla si "Select Var = value". Ju mund t'i përdorni këto çifte, duke i ndarë ato me presje.
3. Krijimi i një procedure të ruajtur SQL
Në një shumëllojshmëri shembujsh, njerëzit tregojnë se si të krijojnë një procedurë të thjeshtë të ruajtur dhe ta ekzekutojnë atë. Megjithatë, procedura mund të marrë parametra të tillë që procesi i thirrjes do të ketë vlera që janë pranë tij (por jo gjithmonë). Nëse ato përkojnë, atëherë proceset korresponduese fillojnë brenda trupit. Për shembull, nëse krijon një procedurë që do të marrë një qytet dhe rajon nga thirrësi dhe do të kthejë të dhënat për sa autorë janë të lidhur me qytetin dhe rajonin përkatës. Procedura do të kërkojë tabelat e autorëve të bazës së të dhënave, për shembull, Pubs, për të kryer këtë numër të autorit. Për të marrë këto baza të të dhënave, për shembull, Google ngarkon skriptin SQL nga faqja e SQL2005.
Në shembullin e mëparshëm, procedura merr dy parametra, të cilat në anglisht do të quhen konvencionalisht @State dhe @City. Lloji i të dhënave përputhet me llojin e përcaktuar në aplikacion. Trupi i procedurës ka variabla të brendshëm @TotalAuthors (të gjithë autorët), dhe kjo variabël përdoret për të shfaqur numrin e tyre. Pastaj ka një seksion për zgjedhjen e pyetjes, të cilën të gjitha llogariten. Së fundi, vlera e llogaritur shfaqet në dritaren e prodhimit duke përdorur operatorin e printimit.
Si të ekzekutoni një procedurë të ruajtur në SQL
Ka dy mënyra për të kryer procedurën. Rruga e parë tregon parametrat kalues, pasi një listë e ndarë me presje ekzekutohet pas emrit të procedurës. Supozoni se kemi dy vlera (si në shembullin e mëparshëm). Këto vlera mblidhen duke përdorur variablet e parametrave @State dhe @City. Rendi është i rëndësishëm në këtë mënyrë të kalimit të parametrave. Kjo metodë quhet transferimi rendor i argumenteve. Në metodën e dytë, parametrat tashmë janë caktuar drejtpërdrejt, dhe në këtë rast urdhri nuk është i rëndësishëm. Kjo metodë e dytë njihet si transferimi i argumenteve me emër.
Procedura mund të devijojë disi nga tipike. Çdo gjë është e njëjtë si në shembullin e mëparshëm, por vetëm këtu parametrat janë zhvendosur. Kjo është, parametri @City ruhet së pari, dhe @State ruhet pranë vlerës së parazgjedhur. Cilësimi i parazgjedhur zakonisht është i ndarë. Procedurat e ruajtur SQL kalojnë si parametra të thjeshtë. Në këtë rast, me kusht, parametri "UT" zëvendëson vlerën e parazgjedhur "CA". Në ekzekutimin e dytë, vetëm një vlerë argumenti është kaluar për parametrin @City, dhe parametri @State merr vlerën e parazgjedhur të "CA". Programuesit me eksperiencë këshillojnë që të gjitha variablat sipas parazgjedhjes të gjenden më afër fundit të listës së parametrave. Përndryshe, ekzekutimi nuk është i mundur dhe pastaj duhet të punoni me transferimin e argumenteve me emër, e cila është më e gjatë dhe më e vështirë.
4. Procedurat e ruajtur nga SQL Server: Metodat e Kthimit
Ekzistojnë tri mënyra të rëndësishme për dërgimin e të dhënave në një procedurë të ruajtur të quajtur. Ato janë të renditura më poshtë:
- kthimin e vlerës së procedurës së ruajtur;
- prodhimin e parametrit të procedurës së ruajtur;
- Zgjidhni një nga procedurat e ruajtura.
4.1 Kthimi i vlerave të procedurave të ruajtura në SQL
Në këtë teknikë, procedura cakton një vlerë për një ndryshore lokale dhe e kthen atë. Procedura gjithashtu mund të kthejë drejtpërdrejt një vlerë konstante. Në shembullin vijues, ne krijuam një procedurë që kthen numrin e përgjithshëm të autorëve. Nëse e krahasoni këtë procedurë me ato të mëparshme, mund të shihni se vlera për shtypjen zëvendësohet nga e kundërta.
Tani le të shohim se si të ekzekutojmë procedurën dhe të nxjerrim vlerën e kthyer në të. Ekzekutimi i procedurës kërkon vendosjen e ndryshores dhe shtypjes, e cila kryhet pas gjithë këtij procesi. Vini re që në vend të deklaratës së printimit, mund të përdorni Operatorin e përzgjedhjes, për shembull, Zgjidhni @RetValue dhe gjithashtu OutputValue.
4.2 Dalja e parametrit të procedurave të ruajtura SQL
Vlera e përgjigjes mund të përdoret për të kthyer një ndryshore, të cilën e pamë në shembullin e mëparshëm. Përdorimi i parametrit Output lejon që procedura të dërgojë një ose më shumë vlera të ndryshueshme te pala thirrëse. Parametri i prodhimit është përcaktuar këtë herë nga ky fjalim "Output" kur krijohet procedura. Nëse parametri është specifikuar si një parametër i daljes, atëherë objekti i procedurës duhet t'i caktojë një vlerë. Procedurat e ruajtur SQL, shembujt e të cilave mund të shihen më poshtë, pastaj kthehen me informacion të përmbledhur.
Në shembullin tonë, ekzistojnë dy emra output: @TotalAuthors dhe @ TotalNoContract. Ato janë të specifikuara në listën e parametrave. Këto variabla përcaktojnë vlerat brenda trupit të procedurës. Kur përdorim parametrat e daljes, telefonuesi mund të shohë vlerën e vendosur brenda trupit të procedurës.
Përveç kësaj, në skenarin e mëparshëm, dy variabla janë deklaruar për të parë vlerat që përcaktojnë procedurat e ruajtura të MS SQL Server në parametrat e daljes. Pastaj procedura kryhet duke furnizuar vlerën normale të parametrit "CA". Parametrat e mëposhtëm dalin dhe prandaj ndryshoret e deklaruara transmetohen në rendin e krijuar. Vini re se kur kalojnë variabla, fjalia e prodhimit është gjithashtu e specifikuar këtu. Pasi procedura të përfundojë me sukses, vlerat e kthyera nga parametrat e daljes shfaqen në dritaren e mesazhit.
4.3 Zgjidhni një nga procedurat e ruajtura SQL
Kjo teknikë përdoret për të kthyer një sërë vlerash si tabelë të të dhënave (RecordSet) në procedurën e ruajtjes së thirrjeve. Në këtë shembull, një procedurë SQL ruajtur me parametra @AuthID e kërkon tabelën e Autorit duke filtruar të dhënat e kthyera duke përdorur këtë parametër @AuthId. Operatori Zgjidhni vendos se çfarë duhet të kthehet në procedurën e ruajtjes së thirrjeve. Kur ekzekuton një procedurë të ruajtur, AuthId kthehet prapa. Një procedurë e tillë këtu gjithmonë kthen vetëm një rekord apo asnjë fare. Por procedura e ruajtur nuk ka ndonjë kufizim në kthimin e më shumë se një rekord. Shpesh është e mundur të gjesh shembuj në të cilët kthimi i të dhënave duke përdorur parametrat e përzgjedhur me pjesëmarrjen e variablave të llogaritura ndodh duke ofruar disa vlera përmbledhëse.
Në përfundim
Një procedurë e ruajtur është një modul softuer mjaft serioz që kthen ose transmeton, dhe gjithashtu përcakton variablet e nevojshme nëpërmjet aplikacionit të klientit. Për shkak se procedura e ruajtur është ekzekutuar në server vetë, shkëmbimi i të dhënave në vëllime të mëdha midis serverit dhe aplikacionit të klientit (për disa llogaritje) mund të shmanget. Kjo ju lejon të zvogëloni ngarkesën në serverin SQL, i cili, sigurisht, shkon krah për krah me mbajtësit e tyre. Një nga nënspeciat është procedura e ruajtjes së T SQL, megjithatë, ata duhet të studiohen nga ata që po krijojnë baza të dhënash mbresëlënëse. Ekziston gjithashtu një numër i madh, madje edhe një numër i madh i nuancave që mund të jenë të dobishme në studimin e procedurave të ruajtura, por kjo është më shumë për ata që planifikojnë të angazhohen në programim, duke përfshirë edhe atë profesional.
Similar articles
Trending Now