O’ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
Amaliy Ish
Mavzu. Funktsiyalar va saqlangan protseduralarni yaratish,
o'zgartirish, qo'llash va o'chirish
Bajardi:SQL001_L1 guruh talabasi
Rustamov Dilmurod
Tekshirdi: Ganixodjaeva Dilfuza
Toshkent 2022
Saqlangan protsedura nima?
Saqlangan protsedura - bu siz saqlashingiz mumkin bo'lgan tayyorlangan SQL kodidir, shuning uchun kodni qayta-qayta ishlatish mumkin.
Shunday qilib, agar sizda qayta-qayta yozadigan SQL so'rovingiz bo'lsa, uni saqlangan protsedura sifatida saqlang va keyin uni bajarish uchun chaqiring.
Shuningdek, siz parametrlarni saqlangan protseduraga o'tkazishingiz mumkin, shuning uchun saqlangan protsedura uzatilgan parametr qiymatlari (qiymatlari) asosida harakat qilishi mumkin.
Saqlangan protsedura sintaksisi
create procedure usersAll LANGUAGE plpgsql AS $$
begin
SELECT*FROM users;
end;
$$ ;
Yuqoridagi saqlangan protsedurani quyidagicha bajariladi:
EXEC SelectAllusers;
Ko'p parametrli saqlangan protsedura
Bir nechta parametrlarni o'rnatish juda oson. Quyida ko'rsatilganidek, har bir parametr va ma'lumotlar turini vergul bilan ajrating.
Quyidagi SQL bayonoti "Users" jadvalidan ma'lum bir ismi ega bo'lgan ma'lum bir telefon nomerga ega bo’lgan userlarni tanlaydigan saqlangan protsedurani yaratadi:
CREATE PROCEDURE SelectAllCustomers @first_name nvarchar(30), @phone nvarchar(10)
AS
SELECT * FROM Customers WHERE first_name= @first_nameAND phone = @phone
EXEC SelectAllusers @first_name= 'Dilmurod', @phone = '+998999999999';
Postgresga ulangan intellij idea orgali users jadvalini yaratamiz
create table users (
id bigint generated always as identity primary key,
first_name varchar(20),
last_name varchar(20),
middle_name varchar(20),
phone varchar(15),
age integer ,
gmail varchar(20)
);
Jadvalga malumotlar kirtamiz
insert into users( first_name, last_name, middle_name, phone, age, gmail)
values ('Dilmurod', 'Rustamov', 'cecew', '+998999999999', 23,'dilmurod@gmail.com'),
('Sardor', 'Adcvwver', 'awsrgb', '+998935980000', 27, 'sardor@gmail.com'),
( 'Anvar2', 'svasv', 'sdvw', '+998935640001', 20, 'Anvar@gmail.com'),
( 'Sohib', 'advdwvw', 'ngfhngh', '+998938964313', 21, 'Sohib@gmail.com');
Endi mavzudan chetlashmagan holda shu jadvalimiz uchun funksiya va protseduralar yaratamiz:
Masalan, biz json berganimizda productni ozi avtomatom tablega saqlasin
create function create_users(first_name varchar, last_name varchar, middle_name varchar,
phone varchar, age integer, gmail varchar) returns boolean
language plpgsql
as
$$
begin
insert into users(first_name, last_name, middle_name, phone, age,gmail)
values (first_name, last_name, middle_name, phone, age, gmail);
return true;
end
$$;
Endi jadvaldagi ma`lumotni o`chiradigan delete_user degan protsedura yaratib ko`raylik.Unga maxsulot idsini berganimizda uni o`chirishi kerak.Shu sababdan deleted_user protseduramiz osha
Userni delete qiladi
create procedure delete_user(user_id bigint) language plpgsql
as
$$
begin
delete from users where id = user_id;
end;
$$;
call delete_user(1);
USER JADVALIDAN BITTA ROW O’CHIRILDI
Xulosa
Funksiya va protsedura deyarli bir xil narsa, ularning bitta farqi shundaki, funksiya qiymat qaytaradi, protsedura esa qiymat qaytarmaydi. Biz funcsiya va protseduralar bizning DT loyihamizni developer uchun qulaylik va kodni soddalashtirishga yordam beradi.
Do'stlaringiz bilan baham: |