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.