Lagrade procedurer: som funktioner för din SQL.
En lagrad procedur är en grupp SQL-satser som skapas och lagras i en databas. Du kan återanvända en lagrad procedur om och om igen.
En lagrad procedur kan acceptera parametrar, köra en fråga och returnera resultat. Många användare kan anropa en lagrad procedur och olika applikationer kan anropa den med olika parametervärden.
Vilka är fördelarna med att använda lagrade procedurer?
Förutom att tillåta flera användare och applikationer att återanvända den, har en lagrad procedur andra fördelar.
- Det är lätt att modifiera. Du kan ändra en lagrad procedur vid behov och dessa uppdateringar kommer att återspeglas för alla användare. Dessutom behöver du inte distribuera om din applikation när du ändrar den lagrade proceduren.
- Det minskar nätverkstrafiken eftersom servern bara skickar procedurens namn över nätverket och inte hela frågan.
- Det förbättrar databassäkerheten eftersom användare inte har direkt tillgång till tabeller. För att göra ändringar måste de anropa den lagrade proceduren. Detta förhindrar SQL-injektionsattacker eftersom användare inte direkt kan skriva till de underliggande tabellerna.
En databasmotor som MySQL har många säkerhetsfunktioner du bör vara medveten om.
Syntax för att skapa en lagrad procedur i SQL Server
Syntaxen för att skapa en lagrad procedur är som följer:
SKAPAPROCEDUR procedure_name
SOM
sql_statement
GÅ;
Kör detta kommando för att utföra den lagrade proceduren.
EXEC procedurnamn;
Exempel på en enkel lagrad procedur i SQL Server
Här är ett exempel på en lagrad procedur som väljer alla artiklar från en artikeldatabas.
SKAPAPROCEDUR Alla_artiklar
SOM
VÄLJ * FRÅN Artikel
GÅ;
Detta är ett enkelt exempel, men du kan göra så mycket mer med lagrade procedurer som att acceptera parametrar och uppdatera poster.
Hur man skapar en lagrad procedur som accepterar parametrar
Ändra till exempel den enkla lagrade proceduren för att acceptera ett nummer som en parameter och använd den för att returnera inläggen med ett antal visningar som är högre än antalet.
SKAPAPROCEDUR Popular_Articles(@views int)
SOM
VÄLJ * FRÅN Artikel
WHERE views_count >= @visningar_räkna
GÅ;
Använd detta kommando för att utföra den lagrade proceduren med en parameter.
EXEC Popular_Articles 300;
Proceduren returnerar artiklar vars visningsantal är högre än 300.
Lär dig SQL först innan du använder lagrade procedurer
Med lagrade procedurer kan du återanvända en grupp SQL-satser. De förbättrar också databassäkerheten, minskar nätverkstrafiken och är lätta att ändra.
Att lära sig om lagrade procedurer är därför viktigt, men du måste först ha en gedigen förståelse för SQL.