存在于表中的列,它们的值是根据确定的表达式或者是根据表中其他列的值自动计算的。 
虚拟列有两种,分别对应了定义虚拟列的修饰关键词: 
‘VIRTUAL’修饰词含义为该虚拟列的值会在查询的时候计算生成。 
‘PERSISTENT’修饰词含义为该虚拟列的值存储子表中。

create table example_vc_tbl(
c1 int not null auto_increment primary key,
c2 varchar(70),
vc1 int as (length(c2)) virtual,
vc2 varchar(10) as (left(c2,10)) persistent
); MariaDB [test]> desc example_vc_tbl;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| c1 | int(11) | NO | PRI | NULL | auto_increment |
| c2 | varchar(70) | YES | | NULL | |
| vc1 | int(11) | YES | | NULL | VIRTUAL |
| vc2 | varchar(10) | YES | | NULL | PERSISTENT |
+-------+-------------+------+-----+---------+----------------+
4 rows in set (0.01 sec)

在执行插入操作时,虚拟列使用default关键字代替。

MariaDB [test]> insert into example_vc_tbl(c2,vc1,vc2) values('你说你双休日不去泡妞还在电脑前做什么?',default,default);
Query OK, 1 row affected (0.01 sec) MariaDB [test]> select * from example_vc_tbl;
+----+-----------------------------------------------------------+------+--------------------------------+
| c1 | c2 | vc1 | vc2 |
+----+-----------------------------------------------------------+------+--------------------------------+
| 1 | 你说你双休日不去泡妞还在电脑前做什么? | 57 | 你说你双休日不去泡妞 |
+----+-----------------------------------------------------------+------+--------------------------------+
1 row in set (0.00 sec)

MariaDB扩展特性--虚拟列的更多相关文章

  1. Oracle 11g新特性虚拟列分区

    如今有个需求:一个单据表要依照月份来分区.假设是在Oracle 10g上,仅仅能再加一个字段. 在Oracle 11g以后就不一样了.能够用虚拟列处理. SQL> select * from v ...

  2. Oracle 11g 新特性(一)-- 虚拟列

    数据库版本: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Oracle11g 增加了虚拟列的新特性, 具体说明如 ...

  3. [oracle 11g 新特性] virtual column虚拟列

    总结:虚拟列可以使用于一些特殊场合,实质是类似于函数列(即以 表中已有的列 经过函数运算得来),“虚拟列不存储在数据库中,是在执行查询时由oracle后台计算出来返回给用户”,因此虚拟列不会增加存储空 ...

  4. 使用mysql5.7新特性(虚拟列)解决使用前通配符性能问题

    众所周知,在mysql里的后通配符可以使用索引查找,前通配查询却无法使用到索引,即使是使用到了索引,也是使用了索引全扫描,效率依然不高,再MySQL5.7之前,一直都没有好的办法解决,但是到了MySQ ...

  5. MySQL与MariaDB核心特性比较详细版v1.0(覆盖mysql 8.0/mariadb 10.3,包括优化、功能及维护)

    注:本文严禁任何形式的转载,原文使用word编写,为了大家阅读方便,提供pdf版下载. MySQL与MariaDB主要特性比较详细版v1.0(不含HA).pdf 链接:https://pan.baid ...

  6. MySQL 5.7 虚拟列 (virtual columns)

    参考资料: Generated Columns in MySQL 5.7.5 MySQL 5.7新特性之Generated Column(函数索引) MySQL 5.7原生JSON格式支持 Gener ...

  7. mysql 虚拟列导入报错1906说明

    当表中有虚拟列,使用mysqldump导出后,执行source导入的时候,会出现下列错误: 对于mariadb 10.2,该错误忽略即可,不影响导入.对于mysql 5.7,截止5.7.9该错误没有解 ...

  8. MySQL 5.7 虚拟列 (virtual columns)(转)

    原文地址:https://www.cnblogs.com/raichen/p/5227449.html 参考资料: Generated Columns in MySQL 5.7.5 MySQL 5.7 ...

  9. JSON & 虚拟列

    什么是虚拟列? 在MySQL 5.7中,支持两种Generated Column,即Virtual Generated Column和Stored Generated Column,前者只将Gener ...

随机推荐

  1. Qt之QHeaderView加入复选框

    简述 前面分享了QTableView中怎样加入复选框. 本节主要介绍QTableView中的表头-QHeaderView加入复选框的功能,以下以水平表头为例.垂直表头相似! 简述 效果 QHeader ...

  2. 经常使用的C#代码(每日更新)

    欢迎使用该软件,软件中包括了经常使用的代码.而且每日更新. 该软件还在开发中,O(∩_∩)O~ 目的: 1.提高工作效率 2.格式化代码,方便阅读 3.必备工具 4.偷懒专用 watermark/2/ ...

  3. Python笔记·第四章—— 细数Python中的数据类型以及他们的方法

    一.数据类型的种类及主要功能 1.数字类型 数字类型主要是用来计算,它分为整数类型int和浮点类型float 2.布尔类型 布尔类型主要是用于判断,它分为真True和False两种 3.字符串类型 字 ...

  4. jquery实现ajax提交表单

    一般情况下,我们提交form表单采用的是submit的方法,典型的场景如下. <form id="thisForm" method="post" acti ...

  5. Java 常量池存放的是什么

    public class Test{ Integer i1 = 127 ; // 常量池本来就有,直接饮用常量池. String s1 = new String("aaaa"); ...

  6. iOS 讯飞语音测试没问题,一上线就用不了了

    看一下打包的版本是不是release, Debug : 调试版本,主要是让程序员使用,在调试的过程中调用 Debug 会启动更多的服务来监控错误,运行速度相对较慢,而且比较耗能. Release : ...

  7. openstack操作之一 命令行

    在openstack环境中提供了多种操作虚拟机的方法,有最简单直接的dashborad界面,有不直观但高效的命令行,还有进阶版的postman调用openstack restfulapi和命令行中使用 ...

  8. 写给小白的JAVA链接MySQL数据库的步骤(JDBC):

    作为复习总结的笔记,我罗列了几个jdbc步骤,后边举个简单的例子,其中的try块请读者自行处理. /* * 1.下载驱动包:com.mysql.jdbc.Driver;网上很多下载资源,自己找度娘,此 ...

  9. Elasticsearch索引自动删除

    简介 脚本分2部分,1部分查找符合条件的索引名,2脚本调用1脚本,进行删除操作 脚本 查找符合条件的,默认大于30天 # coding:utf-8 __author__ = 'Jipu FANG' f ...

  10. String源码图

    String StringBuffer StringBuilder 均为对字符数组的操作. 实现了不同的接口,导致不同的覆写. 实现了同样的接口,适应不同的场景.