6-modul · 7-dars: PL/pgSQL asoslari

Daraja: O'rta

PL/pgSQL asoslari. PostgreSQL bo‘yicha nazariya, amaliy namuna va mustaqil mashq.

Tushuntirish

## Dars maqsadi PL/pgSQL asoslari tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.

## Nazariya PL/pgSQL PostgreSQL ichida o'zgaruvchi, shart, sikl va xato ushlash bilan ishlaydigan protsedurali tildir. Bir nechta SQL qadamini serverga yaqin bajarishda qulay, lekin oddiy to'plamli SQLni keraksiz siklga aylantirish sekinlashtirishi mumkin. DECLARE o'zgaruvchilarni, BEGIN ... END bajariladigan qismni belgilaydi. Dollar quoting, masalan $$ ... $$, matn ichidagi qo'shtirnoqlarni ko'p escape qilmaslik uchun delimiterdir; nested bloklarda $body$ kabi boshqa nom tanlanadi. DO anonim blokni bir marta bajaradi; u qayta ishlatiladigan nomlangan funksiya emas. %ROWTYPE ma'lum jadval qatori tuzilishini, RECORD esa so'rov natijasiga qarab shakllanadigan qatorni bildiradi. CONSTANT qiymati e'lon vaqtida belgilanadi. IF/ELSIF/ELSE va CASE shartlarni ifodalaydi; LOOP, WHILE, FOR va FOREACH takrorlash uchun bor. SELECT ... INTO natijani o'zgaruvchiga yozadi; bir nechta yoki umuman qator chiqmasligi uchun kerakli qoidani tanlang. Server ichidagi biznes kod ham versiyalanishi va test qilinishi kerak.

## Manbalar [Moduldagi savollar yo‘nalishi](https://github.com/jlkesh/pdp_online_java_lessons/blob/main/interviewquestions/6-module%28database%29.md) [Rasmiy qo‘llanma](https://www.postgresql.org/docs/current/)

Kod quyida o‘quv namunasi sifatida berilgan. To‘liq ilova uchun import, dependency va konfiguratsiya kerak bo‘lishi mumkin. SQLni faqat ajratilgan test bazasida bajaring.

Kod misoli

DO $$
DECLARE jami integer := 0;
BEGIN
  FOR i IN 1..3 LOOP jami := jami + i; END LOOP;
  RAISE NOTICE 'Jami: %', jami;
END $$;

Keng tarqalgan xatolar

Mashqlar

Teglar: pdp, modul-06, nazariya

Interaktiv ko'rinish (viktorina, izohlar, tarix)