Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

สร้างฟังก์ชัน MySQL และค้นหาค่าเฉลี่ยของค่าในคอลัมน์


ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable638 (ชื่อ varchar(100), ทำเครื่องหมาย int);ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.68 วินาที)

แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า DemoTable638 ('John',67) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที) mysql> แทรกลงในค่า DemoTable638 ('John',90); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที )mysql> แทรกลงในค่า DemoTable638 ('David',99); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า DemoTable638 ('John', 60); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที) 

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -

mysql> เลือก *จาก DemoTable638;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-------+-------+| ชื่อ | เครื่องหมาย |+-------+-------+| จอห์น | 67 || จอห์น | 90 || เดวิด | 99 || จอห์น | 60 |+-------+-------+4 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อสร้างฟังก์ชันที่ส่งกลับค่าเฉลี่ย -

mysql> set global log_bin_trust_function_creators=1;Query OK, 0 แถวที่ได้รับผลกระทบ (0.28 วินาที)mysql> DELIMITER //mysql> CREATE FUNCTION getAverageDemo() คืนค่า INT BEGIN DECLARE ค่า INT; เลือก AVG(Marks) เป็นค่าจาก DemoTable638 WHERE Name="John"; มูลค่าผลตอบแทน; จบ; //แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.35 วินาที)mysql> DELIMITER;

ตอนนี้คุณสามารถเรียกใช้ฟังก์ชันโดยใช้คำสั่ง select -

mysql> เลือก getAverageDemo();

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-----------------+| getAverageDemo() |+-----------------+| 72 |+-----------------+1 แถวในชุด (0.01 วินาที)