首页 > 解决方案 > 如何更改表(创建/更改)以便在不使用 INSERT、UPDATE 查询整个表时显示计算的“平均分数”字段

问题描述

我有一个表标记。我想添加一个列 Average_score ,它的计算方式类似于(Math+Physics)/2如何在没有更新和插入的情况下做到这一点?

Select *, (Math+Physics)/2 from Marks 

不是正确答案,我需要修改结构。

表标记

标签: mysqlsql

解决方案


像这样向表中添加一个新生成的列:

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 ColumnsALTER TABLE and Generated Columns


推荐阅读