MST

星途 面试题库

面试题:MariaDB中如何定义虚拟列

请阐述在MariaDB中定义虚拟列的语法格式,并给出一个简单示例,比如创建一个包含虚拟列的员工表,虚拟列用于计算员工的总薪资(基本工资 + 奖金)。
34.2万 热度难度
数据库MariaDB

知识考点

AI 面试

面试题答案

一键面试

在MariaDB中定义虚拟列的语法格式如下:

CREATE TABLE table_name (
    column1 datatype,
    column2 datatype,
   ...
    virtual_column_name datatype [GENERATED ALWAYS] AS (expression) [VIRTUAL | STORED]
);

示例:

CREATE TABLE employees (
    id INT PRIMARY KEY,
    basic_salary DECIMAL(10, 2),
    bonus DECIMAL(10, 2),
    total_salary DECIMAL(10, 2) GENERATED ALWAYS AS (basic_salary + bonus) VIRTUAL
);

上述示例中,total_salary 是一个虚拟列,它的值由 basic_salarybonus 相加得出。GENERATED ALWAYS AS 表示该列是基于表达式生成的,VIRTUAL 表明这是一个虚拟列(值不实际存储,而是每次查询时计算)。如果使用 STORED,则值会实际存储在表中。