Pohranjene procedure u MySQL: Kako ih koristiti?

Posljednje ažuriranje: May 25 od 2025
  • Pohranjene procedure u MySQL-u enkapsuliraju SQL operacije, poboljšavajući modularnost koda i ponovnu upotrebu.
  • Oni nude sigurnost i kontrolu pristupa podacima na proceduralnom nivou.
  • Smanjuju promet klijent/server, poboljšavajući performanse prilikom izvršavanja zadataka.
  • Lako se mogu ponovo koristiti i pozivati ​​iz različitih programskih jezika.
Pohranjene procedure u MySQL

Pohranjene procedure su rutine pohranjene u MySQL bazi podataka koje enkapsuliraju SQL operacije i logiku programiranja. Oni djeluju kao mini programi koji se mogu pozvati za obavljanje ponavljajućih ili složenih zadataka.

Nude višestruke prednosti kao što su modularnost, ponovna upotreba koda, veća sigurnost i bolje performanse. Stoga je ovladavanje pohranjenim procedurama od suštinskog značaja za svakog MySQL programera ili administratora.

U nastavku ćemo vidjeti šta su to tačno, njihove prednosti, kako kreirati i koristiti pohranjene procedure u MySQL-u korak po korak i neke praktične primjere kako biste mogli izvući maksimum iz njih.

Šta su pohranjene procedure u MySQL-u?

Pohranjene procedure su skupovi unaprijed kompajlirani SQL izrazi koji su pohranjeni u MySQL bazi podataka s imenom i ulaznim i izlaznim parametrima.

Mogu se pozvati po imenu prosljeđivanjem vrijednosti za njihove parametre. Kada se izvrše, oni izvode operacije definirane unutar njih, kao što su upiti, ažuriranja, logika kontrole toka i još mnogo toga.

Oni su poput mini programa koji se nalaze u bazi podataka koji obuhvataju složene operacije za:

  • Pojednostavite administrativne zadatke koji se ponavljaju
  • Centralizirajte poslovnu logiku na serveru
  • Smanjite promet klijent/server
  • Poboljšajte performanse prilikom prekompajliranja upita

Kada su pohranjeni na serveru, oni pružaju poželjne karakteristike kao što su:

  • Modularnost: Oni razlažu logiku na upravljive delove.
  • Ponovna upotreba: Uklonite dupliciranje koda.
  • Bezbednost: Dozvole na nivou procedure.
  • Skrivanje logike: Klijent ne vidi interne detalje.

Ukratko, pohranjene procedure su vrlo koristan alat za MySQL programere. Pogledajmo njegove glavne prednosti detaljnije.

  Koja je svrha stranog ključa u bazi podataka? The Ultimate Guide

Prednosti korištenja pohranjenih procedura

Pohranjene procedure pružaju važne prednosti:

1. Bolja organizacija i održavanje koda

Oni omogućavaju da se složene operacije modulariziraju u zasebne dijelove kojima se lako upravlja. Kod se može ponovo koristiti sa više mjesta pozivanjem pohranjene procedure.

Ovo dovodi do organizovanijeg koda koji se može održavati sa manje dupliciranja.

2. Smanjenje prometa između klijenta i servera

Pohranjivanjem na server, prijenos informacija je smanjen jer nije potrebno svaki put slati SQL upite. Ovo poboljšava performanse.

3. Brže operacije i transakcije

MySQL samo jednom kompajlira proceduru i ponovo je koristi. Ovo ubrzava izvršenje eliminirajući potrebu za ponovnim kompajliranjem svaki put.

Osim toga, mogu se koristiti za enkapsulaciju složenih transakcija koje će se izvršiti brže.

4. Povećana sigurnost i dozvole

Dozvole i privilegije se mogu dodijeliti na razini pohranjene procedure, umjesto da se daju puni pristup tabelama baze podataka.

Ovo omogućava veću kontrolu nad podacima i operacijama koje korisnici mogu obavljati.

5. Jednostavan za korištenje i održavanje od strane drugih programera

Budući da se dijele u bazi podataka, bilo koji programer s dozvolama može izvršiti procedure bez poznavanja njihovog internog koda. Za detaljniji pregled upravljanja dozvolama, pogledajte korisnici u MySQL-u.

To olakšava održavanje i smanjuje greške.

6. Prenosivost između različitih aplikacija

Budući da je njegova logika sadržana u bazi podataka, može se pozvati iz bilo kojeg programskog jezika koji ga podržava, uključujući Kreirajte funkcije u MySQL.

Kako kreirati pohranjene procedure u MySQL-u

Kreiranje pohranjene procedure u MySQL je jednostavno koristeći SQL sintaksu:

KREIRAJ PROCEDURU naziv_procedure()
BEGIN
upute;
END

  SQL Microsoft Server: Sveobuhvatni vodič

Procedura je kreirana sa jedinstvenim imenom i između BEGIN – END ćemo postaviti SQL izraze koji će se izvršiti kada se pozovu.

Na primjer, ova procedura bilježi novu prodaju:

KREIRAJ PROCEDURU insert_sale(
p_vrijednost FLOAT,
p_klijent VARCHAR(50)
)
BEGIN
INSERT INTO prodaja(vrijednost, kupac)
VRIJEDNOSTI(p_vrijednost, p_klijent);
END

Ova procedura prima parametre p_value i p_customer, ubacuje novu prodaju u tabelu prodaje i vraća automatski generisani ID. Ako želite proširiti svoje znanje o upravljanju podacima, pogledajte MySQL upiti u PHP-u sa primjerima.

Procedure također podržavaju napredniji kod kao što su lokalne varijable, kursori, rukovanje greškama sa BEGIN-EXCEPTION-END, itd.

Kako koristiti pohranjene procedure u MySQL-u

Jednom kada je pohranjena procedura kreirana, može se pozvati u bilo kojem SQL upitu koristeći CALL:

POZOVI naziv_procedure(vrijednost_parametra1, vrijednost_parametra2);

Na primjer, da biste umetnuli prodaju:

POZOVI insert_sale(125.50, 'Juan Perez');

Procedure se također mogu pozvati iz bilo kojeg programskog jezika prosljeđivanjem vrijednosti parametrima. Na primjer, u PHP-u:

$rezultat = $mysqli->query("POZOVI insert_sale(125.50, 'Juan Perez')");

I sa Jave:

CallableStatement stmt = conn.prepareCall("{CALL insert_sale(?, ?)}");
stmt.setDouble(1, 125.50);
stmt.setString(2, "John Perez");
stmt.executeUpdate();

Primjeri pohranjenih procedura u MySQL-u

Pogledajmo nekoliko praktičnih primjera kako bismo bolje iskoristili ovu moćnu MySQL funkciju:

Dobijte ukupnu prodaju po kupcu

KREIRAJ PROCEDURU total_sales_customer(IN p_customer VARCHAR(50))
BEGIN
SELECT SUM(vrijednost) AS ukupno
IZ prodaje
GDJE klijent = p_klijent;
END

Upotreba:

POZOVI total_sales_customer('Ana Valdez');

Navedite proizvode po datoj cijeni

KREIRAJ PROCEDURU jeftini_proizvodi(IN p_cijena DECIMAL(10,2))
BEGIN
ODABERITE ID, naziv, cijenu IZ proizvoda
GDJE je cijena <= p_cijena;
END

Upotreba:

POZOVI jeftini_proizvodi(500);

Izbrišite i ponovo umetnite zapise

KREIRAJ PROCEDURU regenerate_table()
BEGIN
IZBRIŠI IZ moje_tabele;
— Ubacivanje novih zapisa
END;

Praktično za regeneriranje testnih tabela. Za dodatne informacije o strukturi baze podataka, posjetite elementi baze podataka.

  Mariadb ima prednosti i nedostatke

Pozovite drugu internu proceduru

KREIRAJ PROCEDURU moja_procedura()
BEGIN
POZOVI druga_procedura();

— više uputa
END;

Omogućava vam da se razbijete na dijelove za višekratnu upotrebu.

Transfer sredstava između računa

KREIRAJ PROCEDURU transfera(
p_cuentaorigen INT,
p_cuentaDestino INT,
p_decimalni iznos(10,2)
)
BEGIN
POČETAK TRANSAKCIJE;

AŽURIRAJ račune
SET stanje = stanje – p_iznos
GDJE id = p_cuentaOrigen;

AŽURIRAJ račune
SET stanje = stanje + p_iznos
GDJE id = p_cuentaDestino;

COMMIT;
END;

Enkapsulira logiku prijenosa u transakciji.

Zaključci o pohranjenim procedurama

Pohranjene procedure su vrlo moćna funkcija MySQL-a koju bi svaki programer trebao savladati. Da biste detaljnije istražili ostale povezane funkcije, pogledajte relacijske baze podataka.

Oni vam omogućavaju da modulirate složene operacije, ponovo koristite kod, smanjite promet između klijenta i servera, poboljšate performanse i sigurnost.

Pored pohranjenih procedura, MySQL nudi niz funkcija koje su također neophodne za svakog programera. Ove funkcije omogućavaju da se specifične i složene operacije izvode na efikasan i modularan način. Neke od najčešće korištenih funkcija u MySQL-u uključuju `CONCAT` za spajanje nizova, `SUBSTRING` za izdvajanje podnizova i matematičke funkcije poput `ROUND` i `CEIL` za zaokruživanje. a možete i vi

Pohranjene procedure u MySQL
Vezani članak:
Pohranjene procedure u MySQL: Potpuni vodič