Lagrede prosedyrer: som funksjoner for din SQL.
En lagret prosedyre er en gruppe med SQL-setninger opprettet og lagret i en database. Du kan gjenbruke en lagret prosedyre om og om igjen.
En lagret prosedyre kan godta parametere, kjøre en spørring og returnere resultater. Mange brukere kan kalle en lagret prosedyre og forskjellige applikasjoner kan kalle den med forskjellige parameterverdier.
Hva er fordelene ved å bruke lagrede prosedyrer?
Bortsett fra å tillate flere brukere og applikasjoner å gjenbruke den, har en lagret prosedyre andre fordeler.
- Det er enkelt å modifisere. Du kan endre en lagret prosedyre når det er nødvendig, og disse oppdateringene vil gjenspeiles for alle brukere. Videre trenger du ikke å distribuere applikasjonen på nytt når du endrer den lagrede prosedyren.
- Det reduserer nettverkstrafikken fordi serveren bare sender prosedyrens navn over nettverket og ikke hele spørringen.
- Det forbedrer databasesikkerheten siden brukere ikke har direkte tilgang til tabeller. For å gjøre endringer, må de kalle opp den lagrede prosedyren. Dette forhindrer SQL-injeksjonsangrep ettersom brukere ikke kan skrive direkte til de underliggende tabellene.
En databasemotor som MySQL har mange sikkerhetsfunksjoner du bør være klar over.
Syntaks for å lage en lagret prosedyre i SQL Server
Syntaksen for å lage en lagret prosedyre er som følger:
SKAPEFREMGANGSMÅTE prosedyrenavn
SOM
sql_statement
GÅ;
Kjør denne kommandoen for å utføre den lagrede prosedyren.
EXEC prosedyrenavn;
Eksempel på en enkel lagret prosedyre i SQL Server
Her er et eksempel på en lagret prosedyre som velger alle artikler fra en artikkeldatabase.
SKAPEFREMGANGSMÅTE Alle_artikler
SOM
PLUKKE UT * FRA Artikkel
GÅ;
Dette er et enkelt eksempel, men du kan gjøre så mye mer med lagrede prosedyrer som å godta parametere og oppdatere poster.
Hvordan lage en lagret prosedyre som godtar parametere
For eksempel, modifiser den enkle lagrede prosedyren for å godta et tall som en parameter og bruk den til å returnere innleggene med et antall visninger som er høyere enn antallet.
SKAPEFREMGANGSMÅTE Popular_Articles(@views int)
SOM
PLUKKE UT * FRA Artikkel
WHERE views_count >= @visninger_telle
GÅ;
Bruk denne kommandoen til å utføre den lagrede prosedyren med en parameter.
EXEC Popular_Articles 300;
Prosedyren returnerer artiklene hvis antall visninger er høyere enn 300.
Lær SQL først før du bruker lagrede prosedyrer
Lagrede prosedyrer lar deg gjenbruke en gruppe SQL-setninger. De forbedrer også databasesikkerheten, reduserer nettverkstrafikk og er enkle å endre.
Å lære om lagrede prosedyrer er derfor viktig, men du må først ha en solid forståelse av SQL.