Darsliklar SQL Protseduralar

SQL SQL Protseduralar

Protseduralar (Stored Procedures) — bazada saqlanadigan, nom bilan chaqiriladigan SQL kod bloklari. Agar bir xil murakkab so’rovni bir necha marta ishlatsangiz, uni protseduraga jamlab, keyin faqat nomi bilan chaqirasiz. Bu SQL’dagi “funksiya” ga o’xshaydi va katta tizimlarni tartibli qiladi.

Protsedura (Stored Procedure)ma’lumotlar bazasida saqlanadigan, nom bilan chaqirsa bo’ladigan SQL buyruqlari to’plami. U kodni qayta ishlatish va murakkab mantiqni jamlashda ishlatiladi.

Boshlang’ich jadval

Quyidagi foydalanuvchilar jadvali bilan ishlaymiz:

id ism shahar
1 Farrux Toshkent
2 Master Sherkulov Toshkent
3 Aziz Samarqand

Protsedura yaratish

Protsedura CREATE PROCEDURE bilan yaratiladi. Masalan, barcha foydalanuvchilarni ko’rsatuvchi protsedura:

CREATE PROCEDURE BarchaFoydalanuvchilar()
BEGIN
    SELECT * FROM foydalanuvchilar;
END;

Bu protsedura yaratildi, ammo hali ishga tushmadi. BEGIN va END orasida protsedura tanasi — bajariladigan SQL buyruqlari joylashadi.

Protsedurani chaqirish

Yaratilgan protsedura CALL bilan chaqiriladi:

CALL BarchaFoydalanuvchilar();

Natija:

id ism shahar
1 Farrux Toshkent
2 Master Sherkulov Toshkent
3 Aziz Samarqand

CALL protsedura ichidagi SELECT ni bajardi va natijani qaytardi. Endi bu so’rovni har safar to’liq yozish o’rniga faqat CALL BarchaFoydalanuvchilar() yozish kifoya.

Parametrli protsedura

Protsedura parametr qabul qilib, moslashuvchan bo’lishi mumkin. Masalan, shahar bo’yicha qidiruvchi protsedura:

CREATE PROCEDURE ShaharBoyicha(IN p_shahar VARCHAR(50))
BEGIN
    SELECT ism FROM foydalanuvchilar
    WHERE shahar = p_shahar;
END;

Uni parametr bilan chaqiramiz:

CALL ShaharBoyicha('Toshkent');

Natija:

ism
Farrux
Master Sherkulov

IN p_shahar — kirish parametri. CALL ShaharBoyicha('Toshkent') esa unga qiymat berdi. Endi bir protsedura turli shaharlar uchun ishlatiladi.

Protseduraning afzalliklari

Protseduralarning asosiy foydalarini jadvalda ko’ramiz:

Foyda Tavsifi
Qayta ishlatish bir marta yozib, ko’p marta chaqirasiz
Tezlik baza oldindan tayyorlaydi
Xavfsizlik to’g’ridan-to’g’ri jadvalga kirishni cheklaydi
Tartib murakkab mantiqni bir joyga jamlaydi

Xulosa

Bu bo’limda protsedura yaratish (CREATE PROCEDURE), chaqirish (CALL), parametrli protseduralar va ularning afzalliklarini ko’rib chiqdik. Protseduralar kodni qayta ishlatish va tartibga solishning kuchli vositasidir. Keyingi darsda jadvallar ustida amallarga o’tamiz.