SQL pohranjene procedure: stvaranje i korištenje
Pohranjene SQL procedure su izvršni programski modul koji se može pohraniti u baza podataka u obliku raznih predmeta. Drugim riječima, to je objekt koji sadrži SQL izraze. Ove pohranjene procedure mogu se izvršiti u aplikacijskom klijentu kako bi dobili dobru izvedbu. Osim toga, takvi se objekti često nazivaju iz drugih scenarija ili čak iz nekog drugog odjeljka.
sadržaj
- Uvod
- Produktivnost
- Sigurnosni
- Prijenos podataka
- 1. stvorite exec pohranjenu proceduru u sql
- 2. postavljanje varijable u tijelu postupka
- 3. izrada sql pohranjenog postupka
- Kako izvršiti pohranjenu proceduru u sql-u
- 4. sql server pohranjeni postupci: metode povratka
- 4.1 vraćanje vrijednosti sql pohranjenih postupaka
- 4.2 izađite iz parametra sql pohranjene procedure
- 4.3 odaberite jedan od sql pohranjenih postupaka
- U zaključku
uvod
Mnogi vjeruju da su slični postupcima različitih visoki programski jezici (odnosno, osim MS SQL). Možda je to doista tako. Oni imaju slične parametre, mogu proizvesti slične vrijednosti. Štoviše, u nekim slučajevima su u kontaktu. Na primjer, kombiniraju se s bazama podataka DDL i DML, kao i s korisničkim funkcijama (kodni naziv - UDF).
Zapravo, SQL pohranjene procedure imaju širok raspon prednosti koje ih razlikuju od sličnih procesa. Sigurnost, varijabilnost programiranja, produktivnost - sve to privlači korisnike koji rade s bazama podataka, sve više i više. Vrhunac popularnosti postupaka dogodio se u razdoblju od 2005. do 2010. kada je izdan program Microsoft, pod nazivom SQL Server Management Studio. Uz pomoć, suradnja s bazama podataka postala je mnogo jednostavnija, praktičnija i praktičnija. Iz godine u godinu takav način prijenosa podataka dobiva popularnost među programerima. danas MS SQL Server je apsolutno poznati program, koji je za korisnike "komunicirao" s bazama podataka, stajao u paru s "Excel".
Kada se poziva postupak, on odmah obrađuje sam poslužitelj, bez nepotrebnih procesa i intervencije korisnika. Nakon toga možete izvesti sve radnje s informacijama: brisanje, izvršenje, promjena. Za sve to je odgovornost DDL operatora, koja sama obavlja najsloženiju obradu objekata. I sve se to događa vrlo brzo, a poslužitelj nije zapravo učitan. Ova brzina i performanse omogućuju vam vrlo brzo prenošenje velikih količina informacija od korisnika do poslužitelja i obrnuto.
Da bi se ova tehnologija implementirala s informacijama, postoji nekoliko programskih jezika. To uključuje, na primjer, PL / SQL iz sustavi upravljanja bazom podataka Oracle, PSQL u InterBase i Firebird sustavima, kao i klasični "Microsoft" Transact-SQL. Svi su dizajnirani za stvaranje i izvršavanje pohranjenih postupaka, što nam omogućuje korištenje vlastitih algoritama u velikim korisnicima baze podataka. Također je potrebno za one koji upravljaju takvim informacijama kako bi zaštitili sve predmete od neovlaštenog pristupa od strane trećih strana i prema tome stvorili, mijenjali ili izbrisali određene podatke.
produktivnost
Ovi objekti baze podataka mogu se programirati na različite načine. To korisnicima omogućuje odabir vrste metode koja će biti najprikladnija, što štedi vrijeme i trud. Osim toga, sam postupak se obrađuje, čime se izbjegava veliko vrijeme provedeno na razmjeni između poslužitelja i korisnika. Također, modul se može reprogramirati i promijeniti u željeni smjer u bilo kojem trenutku. Posebno je vrijedno napomenuti brzinu kojom započinje SQL pohranjena procedura: ovaj proces je brži od drugih, sličan onome što ga čini prikladnim i svestranim.
sigurnosni
Ova vrsta obrade informacija razlikuje se od sličnih procesa, jer jamči povećanu sigurnost. To osigurava činjenica da se pristup ostalim korisnicima u postupcima može isključiti u potpunosti i potpuno. To će administratoru omogućiti samostalno obavljanje poslova s njima, bez straha od presretanja informacija ili neovlaštenog pristupa bazi podataka.
Prijenos podataka
Odnos između SQL pohranjene procedure i aplikacije klijenta je korištenje parametara i povratnih vrijednosti. Potonji ne mora prenijeti podatke u pohranjenu proceduru, no ove informacije (uglavnom na zahtjev korisnika) i obrađene za SQL. Nakon što pohranjena procedura dovrši svoj rad, ona šalje pakete podataka natrag (ali opet, ako je željeno) aplikaciji koja ju je nazvala pomoću različitih metoda koje se mogu koristiti kao poziv na pohranjenu proceduru SQL i povratak, na primjer:
- prijenos podataka pomoću izlaznog parametra;
- prijenos podataka pomoću povratne izjave;
- prijenos podataka pomoću operatora za odabir.
Pogledajmo sada kako taj proces izgleda iznutra.
1. Stvorite EXEC pohranjenu proceduru u SQL
Možete izraditi postupak u MS SQL (Managment Studio). Nakon što se postupak stvori, bit će prenesen u programirani čvor baze podataka u kojem postupak izrade izvršava operater. Za izvršavanje, SQL pohranjene procedure koriste EXEC proces koji sadrži naziv samog objekta.
Prilikom izrade postupka prvo se pojavljuje naziv, nakon čega se proizvodi jedan ili više parametara. Parametri mogu biti izborni. Nakon što su napisani parametri (e), tj. Tijelo postupka, morate obaviti neke potrebne operacije.
Stvar je u tome da tijelo može imati lokalne varijable koje su u njemu, a te su varijable lokalne i u odnosu na postupke. Drugim riječima, oni se mogu pregledati samo unutar tijela postupka Microsoft SQL Server. Pohranjene procedure se tada smatraju lokalnim.
Dakle, za izradu postupka trebamo naziv postupka i barem jedan parametar kao tijelo postupka. Imajte na umu da je izvrsna opcija u ovom slučaju stvaranje i izvršavanje postupka s nazivom sheme u klasifikatoru.
Tijelo postupka može imati bilo koju vrstu SQL izjave, kao što je stvaranje tablice, umetanje jednog ili više redaka tablice, postavljanje vrste i prirode baze podataka i tako dalje. Ipak, tijelo postupka ograničava izvršavanje određenih operacija u njemu. Neka su važna ograničenja navedena u nastavku:
- tijelo ne bi trebalo stvoriti niti jednu drugu pohranjenu proceduru;
- Tijelo ne bi smjelo stvoriti lažnu sliku objekta;
- Tijelo ne bi trebalo stvoriti nikakvu okidač.
2. Postavljanje varijable u tijelu postupka
Zamjenske varijable možete napraviti lokalno u tijelu, a zatim će se nalaziti isključivo unutar tijela postupka. Dobra je praksa stvaranje varijabli na početku tijela pohranjene procedure. Ali također možete postaviti varijable bilo gdje u tijelu ovog objekta.
Ponekad ćete primijetiti da se u jednoj liniji postavljaju nekoliko varijabli, a svaka varijabla parametara odvaja se zarezom. Također imajte na umu da varijabla ima prefiks @. U tijelu postupka, možete postaviti varijablu gdje želite. Na primjer, varijabla @ NAME1 može se proglasiti bliže kraju tijela postupka. Kako bi se dodijelila vrijednost deklarirane varijable, koristi se skup osobnih podataka. Za razliku od situacije kada se u jednoj liniji proglasi više od jedne varijable, u ovoj se situaciji koristi samo jedan skup osobnih podataka.
Često korisnici postavljaju pitanje: "Kako dodijeliti više vrijednosti u jednom operatoru u tijelu postupka?" Pa. Pitanje je zanimljivo, ali mnogo je lakše učiniti nego što mislite. Odgovor: pomoću parova kao što je "Select Var = value". Možete koristiti te parove, odvajajući ih zarezom.
3. Izrada SQL pohranjenog postupka
U različitim primjerima ljudi pokazuju kako izraditi jednostavnu pohranjenu proceduru i izvršiti je. Međutim, postupak može poduzeti takve parametre da proces pozivanja ima vrijednosti koje su bliske njoj (ali ne uvijek). Ako se podudaraju, tada se unutar tijela počinju odgovarajući procesi. Na primjer, ako izradite postupak koji će pozivatelju odvesti grad i regiju i vratiti podatke o tome koliko je autora povezano s relevantnim gradom i regijom. Postupak će uputiti tablice autora baze podataka, na primjer, Pubovi, za izvođenje ovog broja autora. Da biste dobili te baze podataka, primjerice, Google učitava SQL skriptu s SQL2005 stranice.
U prethodnom primjeru, postupak poduzima dva parametra, koji će na engleskom jeziku biti konvencionalno nazvan @State i @City. Vrsta podataka odgovara vrsti definiranoj u prijavi. Tijelo postupka ima interne varijable @TotalAuthors (sve autore), a ova se varijabla koristi za prikaz njihovog broja. Zatim se pojavljuje odjeljak za odabir upita koji se sve računa. Konačno, izračunata vrijednost se emitira u izlaznom prozoru pomoću operatora ispisa.
Kako izvršiti pohranjenu proceduru u SQL-u
Postoje dva načina za izvođenje postupka. Prva staza prikazuje kada se parametri prolaze, kao popis odvojene zarezima izvršava se nakon naziva postupka. Pretpostavimo da imamo dvije vrijednosti (kao u prethodnom primjeru). Ove se vrijednosti prikupljaju pomoću varijabli parametara @State i @City. Na taj način prijenosa parametara, red je važan. Ova se metoda naziva redni prijenos argumenata. U drugom načinu, parametri su već izravno dodijeljeni, au ovom slučaju redoslijed nije važan. Ova druga metoda je poznata kao prijenos nazvanih argumenata.
Postupak može nešto odstupati od tipičnog. Sve je isto kao u prethodnom primjeru, ali samo su ovdje parametri pomaknuti. To jest, parametar @City pohranjen je prvo, a @State je pohranjen pored zadane vrijednosti. Zadana postavka obično je odvojena. Pohranjene SQL procedure prolaze kao jednostavni parametri. U tom slučaju, pod uvjetom da parametar "UT" zamijeni zadanu vrijednost "CA". U drugom izvršenju, za samo parametar @City propušta se samo jedna argumentna vrijednost, a parametar @State uzima zadanu vrijednost "CA". Iskusni programeri savjetuju da se sve varijable prema zadanim postavkama nalaze bliže kraju popisa parametara. Inače, izvršenje nije moguće, a zatim morate raditi s prijenosom nazvanih argumenata, što je duže i teže.
4. SQL Server pohranjeni postupci: Metode povratka
Postoje tri važna načina za slanje podataka u pohranjenu proceduru pod nazivom. Navedene su sljedeće:
- vratiti vrijednost pohranjene procedure;
- izlaz parametra pohranjene procedure;
- odaberite jednu od pohranjenih postupaka.
4.1 Vraćanje vrijednosti SQL pohranjenih postupaka
U ovoj tehnici, postupak dodjeljuje vrijednost lokalnoj varijabli i vraća je. Postupak također može izravno vratiti konstantnu vrijednost. U sljedećem primjeru stvorili smo postupak koji vraća ukupni broj autora. Ako usporedite ovaj postupak s prethodnim, možete vidjeti da je vrijednost za ispis zamijenjena suprotnim.
Sada ćemo vidjeti kako izvršiti postupak i izlaziti vrijednost koja se vraća na njega. Izvršavanje postupka zahtijeva postavljanje varijable i ispis, koji se provodi nakon ovog procesa. Imajte na umu da umjesto ispisa ispisa možete koristiti operatera Odabir, na primjer, Odaberi @RetValue i također OutputValue.
4.2 Izađite iz parametra SQL pohranjene procedure
Vrijednost odgovora može se koristiti za vraćanje jedne varijable, što smo vidjeli u prethodnom primjeru. Upotrebom izlaznog parametra omogućuje se postupak slanja jedne ili više varijabilnih vrijednosti pozivatelju. Izlazni parametar određuje se istom ključnom riječi "Izlaz" prilikom izrade postupka. Ako je parametar naveden kao izlazni parametar, objekt postupka mora dodijeliti vrijednost. Pohranjeni SQL postupci, čiji se primjeri mogu vidjeti u nastavku, vraćaju se sa sažetim informacijama.
U našem primjeru postoje dva izlaznog naziva: @TotalAuthors i @TotalNoContract. Navedeni su u popisu parametara. Te varijable dodjeljuju vrijednosti unutar tijela postupka. Kada koristimo izlazne parametre, pozivatelj može vidjeti vrijednost postavljenu unutar tijela postupka.
Osim toga, u prethodnom scenariju, dvije varijable su deklarirane kako bi vidjeli vrijednosti koje postavljaju MS SQL Server pohranjene procedure u izlazni parametar. Zatim se postupak provodi dobavljanjem normalne vrijednosti parametra "CA". Izlazni su sljedeći parametri i stoga se deklarirane varijable prenose u utvrđenom redoslijedu. Imajte na umu da se prilikom donošenja varijabli ovdje navodi i izlaznu ključnu riječ. Nakon uspješnog postupka, vrijednosti koje vraćaju izlazni parametri izlaze se u prozor poruke.
4.3 Odaberite jedan od SQL pohranjenih postupaka
Ta se tehnika koristi za vraćanje skup vrijednosti kao tablice podataka (RecordSet) u pohranjeni postupak poziva. U ovom primjeru, SQL pohranjena procedura s parametrima @AuthID upita tablicu Autori filtriranjem vraćenih zapisa pomoću ovog @AuthId parametra. Odabir operatora odlučuje što treba vratiti pohranjenoj proceduri poziva. Pri izvršavanju pohranjene procedure AuthId se vraća natrag. Takav postupak ovdje uvijek vraća samo jedan zapis ili ništa. No pohranjena procedura nema nikakvih ograničenja za povrat više od jednog zapisa. Često je moguće pronaći primjere u kojima povrat podataka pomoću odabranih parametara uz sudjelovanje izračunatih varijabli pojavljuje se pružanjem nekoliko sažetih vrijednosti.
U zaključku
Pohranjena procedura je prilično ozbiljan softverski modul koji vraća ili prenosi i postavlja potrebne varijable putem aplikacije klijenta. Budući da je pohranjeni postupak se izvršava na samom poslužitelju, razmjena podataka u velikim količinama između poslužitelja i aplikacija klijenta (za neke izračune) može se izbjeći. To vam omogućuje da smanjite opterećenje na SQL poslužitelju, koji, naravno, ide u ruke svojih nositelja. Jedna od podvrsta je T SQL pohranjene procedure, međutim, one trebaju proučavati oni koji stvaraju impresivne baze podataka. Tu je i veliki, čak i velika količina nijansi koje mogu biti korisne u proučavanju pohranjene procedure, međutim, ta potreba za one koji planiraju raditi uske programiranje, uključujući i profesionalno.
- Baza podataka je složen sustav
- Memorija vanjskog računala
- SQL datoteku. SQL format datoteke: opis proširenja
- Carinske procedure i operacije
- Pregled sustava za upravljanje bazama podataka
- Sustav upravljanja bazom podataka Microsoftovi poslužitelji SQL
- DB je ... Vrste i svojstva baze podataka
- SQL gdje: metode primjene i primjeri
- Kako se SQL razvrstava?
- Pogreška pri povezivanju s bazom podataka: razlog, ispravak
- Objavi SQL: opis. Transact-SQL
- Što je baza podataka i gdje se može koristiti?
- Ubrzavanje aplikacija. Pojam vremenskih podataka. Tamo gdje su pohranjene privremene datoteke
- Kako stvoriti bazu podataka i što je SQL?
- Kako izraditi aplikaciju u kontaktu ili ne bogima loncima sagorijevati
- Klijent-poslužiteljska tehnologija
- Struktura baze podataka
- Relacijski model podataka, baze podataka, modeli i sheme dizajna
- Pojedinosti o povezivanju tablica za pristup
- Koje vrste baza podataka postoje danas?
- Glavne točke koje ima Access baza podataka