কম্পিউটার

কিভাবে আমরা একটি MySQL সঞ্চিত ফাংশন তৈরি করতে পারি যা একটি টেবিল থেকে ডাইনামিক ডেটা ব্যবহার করে?


MySQL সংরক্ষিত ফাংশনগুলি টেবিলের উল্লেখ করতে পারে তবে তারা এমন বিবৃতি ব্যবহার করতে পারে না যা ফলাফল সেট প্রদান করে। তাই আমরা বলতে পারি যে কোনো SELECT কোয়েরি নেই যা ফলাফল সেট প্রদান করে। কিন্তু আমরা যে পরিত্রাণ পেতে SELECT INTO থাকতে পারে. উদাহরণ স্বরূপ, আমরা একটি ফাংশন 'Avg_marks' তৈরি করছি যেটি 'Student_marks' নামের টেবিল থেকে ডায়নামিক ডেটা ব্যবহার করে, নিচের রেকর্ডগুলো আছে, মার্কের গড় গণনা করতে।

mysql> Select * from Student_marks;
+-------+------+---------+---------+---------+
| Name  | Math | English | Science | History |
+-------+------+---------+---------+---------+
| Raman |   95 |      89 |      85 |      81 |
| Rahul |   90 |      87 |      86 |      81 |
+-------+------+---------+---------+---------+
2 rows in set (0.00 sec)

mysql> DELIMITER //
mysql> Create Function Avg_marks(S_name Varchar(50))
    -> RETURNS INT
    -> DETERMINISTIC
    -> BEGIN
    -> DECLARE M1,M2,M3,M4,avg INT;
    -> SELECT Math,English,Science,History INTO M1,M2,M3,M4 FROM Student_marks W
HERE Name = S_name;
    -> SET avg = (M1+M2+M3+M4)/4;
    -> RETURN avg;
    -> END //
Query OK, 0 rows affected (0.01 sec)

mysql> DELIMITER ;
mysql> Select Avg_marks('Raman') AS 'Raman_Marks';
+-------------+
| Raman_Marks |
+-------------+
|          88 |
+-------------+
1 row in set (0.07 sec)

mysql> Select Avg_marks('Rahul') AS 'Raman_Marks';
+-------------+
| Raman_Marks |
+-------------+
|          86 |
+-------------+
1 row in set (0.00 sec)

  1. কিভাবে একটি MySQL সঞ্চিত ফাংশন লিখতে হয় যা একটি টেবিলে মান সন্নিবেশ করে?

  2. কিভাবে আমরা ডাটাবেস থেকে একটি MySQL সঞ্চিত ফাংশন মুছে ফেলতে পারি?

  3. আমরা কিভাবে PHP স্ক্রিপ্টের সাহায্যে MySQL টেবিল থেকে সমস্ত রেকর্ড প্রদর্শন করতে পারি যা mysql_fetch_assoc() ফাংশন ব্যবহার করে?

  4. আমি কিভাবে একটি MySQL ভিউ তৈরি করতে পারি যা কিছু শর্ত(গুলি) এর উপর ভিত্তি করে একটি টেবিল থেকে মান নেয়?