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

วิธีเปลี่ยนตาราง (สร้าง/แก้ไข) เพื่อให้ฟิลด์ "คะแนนเฉลี่ย" ที่คำนวณได้แสดงขึ้นเมื่อทำการสืบค้นทั้งตารางโดยไม่ต้องใช้ MySQL INSERT, UPDATE?


ต่อไปนี้คือไวยากรณ์ -

แก้ไขตาราง yourTableName เพิ่มคอลัมน์ yourColumnName yourDataTypegenerated always as ((yourColumName1+yourColumName2+....N) / N) virtual;

ให้เราสร้างตาราง -

mysql> สร้างตาราง demo32−> (−> value1 int,−> value2 int−> );Query OK, 0 แถวได้รับผลกระทบ (1.42 วินาที)

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

mysql> แทรกลงในค่า demo32 (30,60) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที) mysql> แทรกลงในค่า demo32 (20,40) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที) mysql> เป็นค่า demo32 (35,35); ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.08 วินาที)

แสดงบันทึกจากตารางโดยใช้คำสั่ง select -

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

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

<ก่อนหน้า>+---------+-------+| value1 | value2 |+---------+-------+| 30 | 60 || 20 | 40 || 35 | 35 |+--------+ -------- +3 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามไปยังตาราง (สร้าง/แก้ไข) เพื่อให้ฟิลด์ "คะแนนเฉลี่ย" ที่คำนวณได้แสดงขึ้นเมื่อทำการสอบถามทั้งตารางโดยไม่ต้องใช้ INSERT อัปเดต -

mysql> แก้ไขตาราง demo32 เพิ่มคอลัมน์ `คะแนนเฉลี่ย` float−> สร้างขึ้นเสมอเหมือน ((value1+value2) / 2) เสมือน แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (1.57 วินาที) บันทึก:0 รายการซ้ำ:0 คำเตือน:0 

แสดงบันทึกจากตารางโดยใช้คำสั่ง select -

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

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

<ก่อนหน้า>+---------+---------+--------------+| value1 | value2 | คะแนนเฉลี่ย |+---------+---------+--------------+| 30 | 60 | 45 || 20 | 40 | 30 || 35 | 35 | 35 |+--------+-------+--------------+3 แถวในชุด (0.00 วินาที)