虚拟列
虚拟列是指使用表达式或函数进行定义的数据列。逻辑上,表的虚拟列与普通列具有相同的语法含义,但虚拟列的值并不保存在任何物理存储介质上,而是在SQL的执行过程中,根据定义虚拟列的表达式或函数进行计算而获得。
语法图解
语法格式
<create_table> (
...
column [ datatype ] [GENERATED ALWAYS] AS ( columnn_expression ) [VIRTTUAL]
...
)
参数说明
元素 | 描述 | 限制 |
---|---|---|
column | 虚拟列的列名 | 符合8s命名规范 |
datatype | 数据类型 | |
column_expression | 虚拟列的列表达式或常量表达式 |
示例
- 创建带虚拟列的表employee,其中total_sal为表达式定义的虚拟列:
CREATE TABLE employee
(
empl_ID INT,
empl_Nm VARCHAR(50),
monthly_Sal DECIMAL(10,2),
bonus DECIMAL(10,2),
total_Sal DECIMAL(10,2) GENERATED ALWAYS AS (monthly_Sal*12 + bonus)
);
- 向employee表中新增一列虚拟列monthly_Avg:
ALTER TABLE employee ADD (monthly_Avg AS ((monthly_Sal * 12 + bonus)/12));