Mysql da funktsiyalar va saqlangan protseduralar yaratish uchun, siz Stored Procedures va Stored Functions dan foydalanishingiz mumkin


Download 0.63 Mb.
Sana31.03.2023
Hajmi0.63 Mb.
#1311204
Bog'liq
lab 2


O’ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI






Laboratoriya ishi

MAVZU: Funktsiyalar va saqlangan protseduralarni yaratish, o'zgartirish, qo'llash va o'chirish

Bajardi: Qo’ziboyev Jasurbek
Tekshirdi: Ganixodjaeva Dilfuza

Toshkent – 2023
MySQL da funktsiyalar va saqlangan protseduralar yaratish uchun, siz Stored Procedures va Stored Functions dan foydalanishingiz mumkin.
Stored Procedures, MySQL-da bir yoki bir nechta SQL so'rovlarini o'z ichiga olgan va SQL so'rovlarini bitta qator halida ishga tushirib beradigan kichik dasturlardir. Stored Procedures yaratish uchun CREATE PROCEDURE buyrug'i ishlatiladi.
Masalan, quyidagi kodda, add_customer nomli Stored Procedure yaratiladi. Bu Stored Procedure, yangi mijoz qo'shish uchun kerak bo'lgan ma'lumotlarni qabul qiladi va bu ma'lumotlarni customers jadvaliga qo'shadi.
CREATE PROCEDURE add_customer(IN name VARCHAR(50), IN email VARCHAR(50))
BEGIN
INSERT INTO customers(name, email) VALUES(name, email);
END;
Stored Functions esa, SQL so'rovlaridan tashqari matematik, sanoq, va boshqa xisoblash operatsiyalarni bajarish uchun yaratilgan funksiyalardir. Stored Functions yaratish uchun CREATE FUNCTION buyrug'i ishlatiladi.
Masalan, quyidagi kodda, get_discounted_price nomli Stored Function yaratiladi. Bu Stored Function, mahsulot narxini va chegirma miqdorini qabul qiladi va chegirilgan narxni qaytaradi.
CREATE FUNCTION get_discounted_price(price DECIMAL(10,2), discount DECIMAL(3,2))
RETURNS DECIMAL(10,2)
BEGIN
DECLARE discounted_price DECIMAL(10,2);
SET discounted_price = price - (price * discount);
RETURN discounted_price;
END;
Saqlangan protseduralarni o'zgartirish uchun, ularni qayta yaratish kerak bo'lmaydi. Ularni o'zgartirish uchun ALTER PROCEDURE yoki ALTER FUNCTION buyruqlari ishlatiladi.
Saqlangan protseduralarni o'chirish uchun esa, DROP PROCEDURE yoki DROP FUNCTION buyruqlari ishlatiladi.
Masalan, quyidagi kodda, add_customer nomli Stored Procedure o'chiriladi:
DROP PROCEDURE IF EXISTS add_customer;
MySQL-da funktsiyalarni chaqirish uchun, ularning nomini yozish va parametrlarni uzatish kerak. Stored Procedures chaqirish uchun CALL buyrug'i ishlatiladi. Masalan, quyidagi kodda, add_customer nomli Stored Procedure chaqiriladi:
CALL add_customer('John Doe', 'johndoe@example.com');
Stored Functions chaqirish uchun esa, nomi va parametrlari kiritilgan SELECT buyrug'i yaratiladi. Masalan, quyidagi kodda, get_discounted_price nomli Stored Function chaqiriladi:
SELECT get_discounted_price(100, 0.1);
Bu buyruq 100 narxli mahsulot uchun 10% chegirma hisoblanadi va chegirilgan narxni qaytaradi.

MySQL-da funktsiyalarga kerakli ma'lumotlarni bermasdan ham, ulardan foydalanish mumkin. Masalan, quyidagi kodda, customers jadvalidagi mijozlar soni get_customer_count nomli Stored Function orqali aniqlanadi:


CREATE FUNCTION get_customer_count() RETURNS INT
BEGIN
DECLARE count INT;
SELECT COUNT(*) INTO count FROM customers;
RETURN count;
END;

SELECT get_customer_count();


Bu buyruq customers jadvalidagi mijozlar sonini hisoblaydi va get_customer_count nomli Stored Function orqali aniqlanadi.

MySQL-da Stored Procedures va Stored Functions foydalanishni osonlashtiradi, chunki ulardan odatda foydalaniladigan ko'plab ma'lumotlar va operatsiyalar jamlanadi. Shuningdek, ulardan foydalanish SQL so'rovlarni qayta-qayta yozish zarurati yo'q.


Quyidagi misolda MySQL-da add_customer nomli Stored Procedure yaratiladi, customers jadvaliga yangi mijoz qo'shish uchun. add_customer nomli Stored Procedure, mijozning ismi va elektron pochtasi ma'lumotlarini qabul qiladi va customers jadvaliga qo'shadi.
CREATE TABLE customers (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email VARCHAR(50) NOT NULL
);

DELIMITER //

CREATE PROCEDURE add_customer(IN name VARCHAR(50), IN email VARCHAR(50))
BEGIN
INSERT INTO customers(name, email) VALUES(name, email);
END //

DELIMITER ;



Yaratilgan add_customer nomli Stored Procedure ni chaqirish uchun quyidagi SQL buyruqini ishlatish mumkin:
MySQL-da funktsiyalar ham yaratish mumkin. Quyidagi misolda, get_discounted_price nomli Stored Function yaratiladi. Bu Stored Function, mahsulot narxini va chegirma miqdorini qabul qiladi va chegirilgan narxni qaytaradi.
DELIMITER //

CREATE FUNCTION get_discounted_price(price DECIMAL(10,2), discount DECIMAL(3,2))


RETURNS DECIMAL(10,2)
BEGIN
DECLARE discounted_price DECIMAL(10,2);
SET discounted_price = price - (price * discount);
RETURN discounted_price;
END //

DELIMITER ;



CREATE FUNCTION get_discounted_price(price DECIMAL(10,2), discount DECIMAL(3,2))
RETURNS DECIMAL(10,2)
BEGIN
DECLARE discounted_price DECIMAL(10,2);
SET discounted_price = price - (price * discount);
RETURN discounted_price;
END;


Bu Stored Function ni chaqirish uchun quyidagi SQL buyruqini ishlatish mumkin:
SELECT get_discounted_price(100, 0.1);
Bu buyruq 100 narxli mahsulot uchun 10% chegirma hisoblanadi va chegirilgan narxni qaytaradi.
Download 0.63 Mb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling