O’ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMUNIKATSIYALARINI
RIVOJLANTIRISH VAZIRLIGI
Muhammad Al-Xorazmiy nomidagi Toshkent axborot texnologiyalari universiteti
3-Laboratoriya ishi
Ma’lumotlar bazasini boshqarish fanidan
219-18 – guruh talabasi
Bajardi: Ismatova Iroda
Laboratoriya ishi – 3
Funksiya va proseduradan MySQL da foydalanish va amallar bajarish.
MySQL serverida funksiya yoki prosedura yaratish uchun uchun CREATE FUNCTION yoki CREATE PROCEDURE kalit so’zlaridan foydalaniladi. Ma'lumotlar bazasi serveriga bir nechta SQL so’rovlarni yuborish o'rniga, dastur protsedura yoki funksiyalar deb nomlangan so'rovlar to'plamini yuborishi mumkin. Protseduralar va funksiyalar qayta ishlatilishi mumkin va ishlashni yaxshilash uchun turli xil ilovalar tomonidan ishlatilishi mumkin va bu qisqa kod bilan ko’proq va samaraliroq ishlash imkonini beradi.
MySQL da funksiya quyidagicha yaratiladi:
Funktsiya yaratilgandan so'ng uni MySQL Workbench-da funktsiyalar bo'limida ko'rishimiz mumkin:
Yoki mavjud “kasalxona” ma'lumotlar bazasidagi barcha saqlangan funktsiyalarni SHOW FUNCTION STATUS yordamida quyidagi tarzda ko'rishimiz mumkin:
Ushbu yaratilgan funksiyani quyidagicha ishlatishimiz mumkin:
Endi esa ushbu yaratilgan funksiya yordamida quyidagicha yangi prosedura yaratishimiz mumkin:
Yuqoridagi so’rovning natijasida yangi prosedura hosil bo’ladi:
Prosedurani ishlatish uchun quyidagicha so’rov yozish kerak bo’ladi:
JOINS (INNER JOIN, OUTER JOIN, FULL JOIN)
JOIN jadvallar orasidagi bog'liq ustunga asoslanib, ikki yoki undan ortiq jadvaldagi qatorlarni birlashtirish uchun ishlatiladi. Bularni amaliyotda bajarish uchun ikkita yangi jadval yaratamiz:
Yangi Bemor1 va bemor2 jadvalini yaratish.
Jadvalga ma’lumot kiritish.
Bemor1 jadvalining dastlabki ko’rinishi:
Bemor2 jadvalining dastlabki ko’rinishi:
Join turlari:
1.Inner join
2.Outer join
3. Full join
TRIGGER dan foydalanish.
Hodisada so'rov bajarilishidan keyin ro'y beradigan amal bajarilishi uchun biz after trigger dan foydalanamiz. Faraz qilaylik, bizda Talaba va Stipendiyasiz jadvallari mavjud bo’lsin. Quyidagi trigger har safar yangi talaba qo’shilganda agar uning stipendiyasi null bo’lsa uni avtomatik ravishda Stipendiyasiz jadvaliga joylaydi:
Bu trigger ishlashi uchun avvalo quyidagi so’rovlarni ishlatamiz:
use kasalxona;
DROP TABLE IF EXISTS Talaba;
CREATE TABLE Talaba (
id int auto_increment not null primary key,
FISH varchar(50) not null,
guruh varchar(20) not null,
stipendiya int
);
DROP TABLE IF EXISTS Stipendiyasiz;
create table Stipendiyasiz (
id int not null auto_increment primary key,
FISH varchar(50) not null,
guruh varchar(20) not null
);
DELIMITER $$
create trigger stipendiyasiz
after insert
on Talaba
for each row
BEGIN
IF NEW.stipendiya IS NULL THEN
INSERT INTO Stipendiyasiz(id, FISH, guruh)
VALUES(new.id, new.FISH, new.guruh);
END IF;
END$$
DELIMITER ;
insert into Talaba values(1, "Ismatova Iroda", "219-18", 513000);
insert into Talaba values(2, "Niyozov Abbos", "218-18", null);
insert into Talaba values(3, "Abdullayeva Farangiz", "219-18", 428000);
insert into Talaba values(4, "Qirg'izbayev Rustam", "118-18", 513000);
insert into Talaba values(5, "Hamidov Sanjar", "217-18", null);
insert into Talaba values(6, "Boburov Bobur", "111-18", 428000);
Yuqoridagi so’rovlar to’g’ri ishlaganini ikkita select bilan tekshirib ko’rishimiz mumkin:
Ko’rinib turibdiki Stipendiyasiz jadvaliga ikkita element avtomatik qo’shildi.
XULOSA:
Men Ismatova Iroda bu labaratoriya ishini bajarish davomida MySQL da funksiya va protseduradan foydalanishni, JOINlar bilan ishlashni shuningdek, Triggerdan foydalanishni o’rgandim.
Do'stlaringiz bilan baham: |