mysql - 如何更改表(创建/更改)以便在不使用 INSERT、UPDATE 查询整个表时显示计算的“平均分数”字段
问题描述
我有一个表标记。我想添加一个列 Average_score ,它的计算方式类似于(Math+Physics)/2
如何在没有更新和插入的情况下做到这一点?
Select *, (Math+Physics)/2 from Marks
不是正确答案,我需要修改结构。
解决方案
像这样向表中添加一个新生成的列:
alter table Marks add column `Average Score` float
generated always as ((Math + Physics) / 2) virtual;
您可以将列更改为 bestored
和 not virtual
。
请参阅演示。
结果:
| N | Surname | Name | Math | Physics | Average Score |
| --- | ------- | ---- | ---- | ------- | --------------- |
| 1 | Smith | Ann | 5 | 4 | 4.5 |
| 2 | Perkins | Zoe | 2 | 3 | 2.5 |
| 3 | Jones | Rick | 5 | 5 | 5 |
更多关于生成列的信息:
CREATE TABLE and Generated Columns和ALTER TABLE and Generated Columns