Uložená procedúra v SQL je skupina SQL dotazov, ktoré možno uložiť a opakovane použiť viackrát. Je to veľmi užitočné, pretože znižuje potrebu prepisovania SQL dotazov. Zvyšuje efektivitu, opätovnú použiteľnosť a bezpečnosť pri správe databáz.
Java databáza jdbc
Užívatelia môžu tiež odovzdať parametre do uložených procedúr, takže uložená procedúra môže pôsobiť na odovzdané hodnoty parametrov.
Uložené procedúry sú vytvorené na vykonanie jednej alebo viacerých DML operácie na databáze. Nie je to nič iné ako skupina SQL príkazy ktorý prijíma nejaký vstup vo forme parametrov, vykonáva nejakú úlohu a môže alebo nemusí vrátiť hodnotu.
Syntax
Dve dôležité syntaxe na používanie uložených procedúr v SQL sú:
Syntax na vytvorenie uloženej procedúry
CREATE PROCEDURE názov_postupu
(parameter1 data_type, parameter2 data_type, …)
AS
ZAČAŤ
— SQL príkazy, ktoré sa majú vykonať
KONIECabeceda s číslami
Syntax na vykonanie uloženej procedúry
EXEC názov procedúry hodnota_parametra, hodnota_parametra2, ..
Parameter
Najdôležitejšou časťou sú parametre. Parametre sa používajú na odovzdávanie hodnôt do procedúry. Existujú rôzne typy parametrov, ktoré sú nasledovné:
- ZAČAŤ: To je to, čo priamo vykonáva alebo môžeme povedať, že je to spustiteľná časť.
- KONIEC: Až do tohto sa kód vykoná.
Príklad uloženej procedúry SQL
Pozrime sa na príklad uloženej procedúry v SQL, aby sme jej lepšie porozumeli.
Predstavte si databázu s názvom SampleDB, tabuľku s názvom Zákazníci s niekoľkými vzorovými údajmi a uloženú procedúru s názvom GetCustomersByCountry.
Uložená procedúra preberá parameter Krajina a vracia zoznam zákazníkov z tabuľky Zákazníci, ktorí zodpovedajú zadanej krajine. Nakoniec sa uložená procedúra vykoná s parametrom Srí Lanka na získanie zoznamu zákazníkov zo Srí Lanky.
Dopyt:
-- Create a new database named 'SampleDB' CREATE DATABASE SampleDB; -- Switch to the new database USE SampleDB; -- Create a new table named 'Customers' CREATE TABLE Customers ( CustomerID INT PRIMARY KEY, CustomerName VARCHAR(50), ContactName VARCHAR(50), Country VARCHAR(50) ); -- Insert some sample data into the Customers table INSERT INTO Customers (CustomerID, CustomerName, ContactName, Country) VALUES (1, 'Shubham', 'Thakur', 'India'), (2, 'Aman ', 'Chopra', 'Australia'), (3, 'Naveen', 'Tulasi', 'Sri lanka'), (4, 'Aditya', 'Arpan', 'Austria'), (5, 'Nishant. Salchichas S.A.', 'Jain', 'Spain'); -- Create a stored procedure named 'GetCustomersByCountry' CREATE PROCEDURE GetCustomersByCountry @Country VARCHAR(50) AS BEGIN SELECT CustomerName, ContactName FROM Customers WHERE Country = @Country; END; -- Execute the stored procedure with parameter 'Sri lanka' EXEC GetCustomersByCountry @Country = 'Sri lanka';>
Poznámka: Budete sa musieť uistiť, že používateľský účet má potrebné oprávnenia na vytvorenie databázy. Môžete sa pokúsiť prihlásiť ako iný používateľ s oprávneniami správcu alebo kontaktovať správcu databázy, aby vášmu používateľskému účtu udelil potrebné oprávnenia. Ak používate cloudovú databázovú službu, uistite sa, že ste správne nakonfigurovali používateľský účet a jeho povolenia.
mapa v strojopise
Výkon:
| Meno zákazníka | Kontaktné meno |
|---|---|
| Naveen | Tulasi |
Dôležité body o uložených procedúrach SQL
- Uložená procedúra je pripravený kód SQL, ktorý môžete uložiť, takže kód možno znova a znova použiť.
- Uložené procedúry umožňujú kód, ktorý sa opakovane používa, uložiť do databázy a spustiť odtiaľ, a nie z klienta. To poskytuje modulárnejší prístup k návrhu databázy.
- Keďže uložené procedúry sú skompilované a uložené v databáze, sú vysoko efektívne. SQL Server skompiluje každú uloženú procedúru raz a potom znovu využije plán vykonávania. To vedie k obrovskému zvýšeniu výkonu pri opakovanom volaní uložených procedúr.
- Uložené procedúry poskytujú lepšiu bezpečnosť vašich údajov. Používatelia môžu vykonávať uloženú procedúru bez toho, aby museli priamo vykonávať ktorýkoľvek z príkazov. Preto môže byť používateľovi udelené povolenie na vykonanie uloženej procedúry bez toho, aby mal akékoľvek povolenia na základné tabuľky.
- Uložené procedúry môžu znížiť sieťovú prevádzku a latenciu a zvýšiť tak výkon aplikácií. Jedno volanie uloženej procedúry môže vykonať mnoho príkazov.
- Uložené procedúry majú lepšiu podporu pre spracovanie chýb.
- Uložené procedúry možno použiť na poskytovanie pokročilých databázových funkcií, ako je úprava údajov v tabuľkách a zapuzdrenie týchto zmien v rámci databázových transakcií.