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

การเพิ่มคอลัมน์คำนวณ (Generated Column) สำหรับ Average Score ใน MySQL

Generated Column (Virtual Column) สำหรับคำนวณอัตโนมัติ

MySQL 5.7+ รองรับ GENERATED ALWAYS AS (expression) VIRTUAL คำนวณค่าอัตโนมัติเมื่อ SELECT ไม่เก็บข้อมูลจริง

คำสั่ง ALTER TABLE

ALTER TABLE demo32 
ADD COLUMN `Average Score` FLOAT 
GENERATED ALWAYS AS ((value1 + value2) / 2) VIRTUAL;

ตัวอย่างเต็ม

CREATE TABLE demo32 (value1 INT, value2 INT);
INSERT INTO demo32 VALUES (30, 60), (20, 40), (35, 35);

-- เพิ่ม Generated Column
ALTER TABLE demo32 
ADD COLUMN `Average Score` FLOAT 
GENERATED ALWAYS AS ((value1 + value2) / 2) VIRTUAL;

SELECT * FROM demo32;

ผลลัพธ์

value1value2Average Score
306045
204030
353535

ข้อดี:

  • ไม่ต้อง UPDATE คำนวณเอง
  • ไม่ใช้พื้นที่จัดเก็บ (VIRTUAL)
  • ค่าสม่ำเสมอถูกต้องตามข้อมูลล่าสุด
  • สามารถ Index ได้ (ในบางกรณี)

Stored Generated Column: ใช้ STORED แทน VIRTUAL จะเก็บค่าจริง ใช้พื้นที่ แต่อ่านเร็วกว่า