我的编程空间,编程开发者的网络收藏夹
学习永远不晚

什么是mysql的虚拟列以及应用实例

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

什么是mysql的虚拟列以及应用实例

目录

简介

MySQL的虚拟列是一种新特性,可以在查询时直接使用虚拟列(代替视图) 存储虚拟列可以用作实例化缓存,以用于动态计算成本高昂的复杂条件。虚拟列可以在创建表时定义,并在查询时像普通列一样使用。虚拟列通常用于计算或汇总数据,例如计算总价、计算平均值等。

定义MySQL虚拟列(generated-columns)是MySQL 5.7加入的新特性。从名字来讲,“生成的字段”,并不是主动插入的值。MySQL的文档,是这么解释虚拟列的:There are two kinds of Generated Columns: virtual (default) and store-generated (non-default). Virtual columns are generated on the fly as part of an INSERT or UPDATE statement, and they are not stored in the table. Stored-generated columns are calculated based on the values of other columns and are stored in the table.

虚拟列的分类

在MySQL中,虚拟列有两种类型:STORED和VIRTUAL,分别表示存储列和虚拟列。

  • 存储列(STORED):表示虚拟列的值实际上是被计算出来并存储在表中的,可以在查询时直接使用。存储列的优点是它们可以被索引,这意味着它们可以更快地被搜索,但是它们也会占用更多的存储空间。存储列的值在数据插入或更新时动态计算,并存储在表中。

其中的公式为:

alter table table_name    modify column_name int as (表达式) stored;

AS (表达式):定义该列为虚拟列,并指定其值的计算方式。表达式是一个SQL表达式,用于计算虚拟列的值。

STORED:表示该虚拟列的值会被计算出来并存储在表中。

  • 虚拟列(VIRTUAL):表示虚拟列的值不会存储在表中,而是在查询时动态计算。虚拟列的优点是它们不会占用额外的存储空间,但是它们不能被索引,因此在大型表中使用虚拟列时需要谨慎,否则可能会影响查询性能。 在上述SQL语句中,使用了STORED关键字表示该虚拟列的值会被计算出来并存储在表中。因此,每次查询表时,MySQL都会返回存储在表中的虚拟列值,而不是在查询时计算虚拟列的值。

其中公式为:

alter table table_name    add column_name int as (表达式);

AS (表达式):定义该列为虚拟列,并指定其值的计算方式。表达式是一个SQL表达式,用于计算虚拟列的值。

虚拟列使用示例

创建数据库mydb,创建用户表并插入数据

create database mydb;use mydb;create table t_user(    id          bigint auto_increment        primary key,    name        varchar(255)  null,    age         int default 0 null);INSERT INTO mydb.t_user (name, age) VALUES ('小明', 12)INSERT INTO mydb.t_user (name, age) VALUES ('小红', 18)

插入两条数据。

创建虚拟存储列

alter table mydb.t_user    add store_age int as (age + 9) stored;

创建了store_age的虚拟存储列,以age为标准加9.

展示效果

idnameagestore_age
1小明1221
2小红1827

可以看到store_age的数据都是在age的基础上加了9

创建虚拟列

alter table mydb.t_user    add virtual_age int as (age + 87);

创建了virtual_age的虚拟列,以age为标准加87.

展示效果

idnameagestore_agevirtual_age
1小明122199
2小红1827105

可以看到virtual_age的数据都是在age的基础上加了87.

来源地址:https://blog.csdn.net/qq_30503389/article/details/131243934

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

什么是mysql的虚拟列以及应用实例

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

虚拟专网的工作原理以及用途是什么

虚拟专网的工作原理以及用途是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在使用虚拟专网之前,企业或者单位会进行网络加密,这样一来可以保护企业信息的安全。那么虚拟专网的工作
2023-06-07

Python虚拟机中列表的实现原理是什么

这篇文章主要介绍“Python虚拟机中列表的实现原理是什么”,在日常操作中,相信很多人在Python虚拟机中列表的实现原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python虚拟机中列表的实现原理
2023-07-05

mysql多实例的应用方法是什么

这篇文章主要介绍了mysql多实例的应用方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇mysql多实例的应用方法是什么文章都会有所收获,下面我们一起来看看吧。Mysql多
2023-04-14

asp虚拟主机搭建及使用的方法是什么

ASP虚拟主机的搭建及使用方法如下:1.选择ASP虚拟主机服务提供商,注册账号并购买虚拟主机空间。2.使用FTP软件登录虚拟主机空间,将ASP网站程序上传到主机的根目录或指定的目录中。3.在虚拟主机控制面板中创建数据库,并将数据库连接字符串
2023-06-03

云服务器是虚拟技术吗为什么没有实现应用

首先,云服务器是一种基于云计算技术的服务器,它可以在不同的计算机之间进行资源共享。用户可以通过互联网访问云服务器中的服务器,而不需要购买或租用自己的服务器。云服务器可以根据用户的需求进行扩展,以满足用户的不同需求。其次,云服务器是一种基于虚拟化技术的服务器。它将应用程序、存储和网络等资源抽象为虚拟的服务器实例,使得用户
云服务器是虚拟技术吗为什么没有实现应用
2023-10-27

什么是 MySQL UNIQUE 约束以及我们如何将其应用于表的字段?

顾名思义,MySQL UNIQUE 约束维护表中列的唯一性,并且不允许插入重复值。基本上,UNIQUE 约束创建一个索引,使得索引列中的所有值都必须是唯一的。这里值得一提的是,MySQL 表中可以有多个 UNIQUE 列。我们可以通过在定义
2023-10-22

mysql索引的优劣势是什么以及使用方法

本篇内容主要讲解“mysql索引的优劣势是什么以及使用方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql索引的优劣势是什么以及使用方法”吧!一、索引的优劣势优点:可以快速的检索 、可
2023-06-08

MySQL 中的“unsigned”是什么意思以及何时使用它?

MySQL中的“无符号”是一种数据类型。每当我们向任何列写入无符号数时,这意味着您不能插入负数。假设,对于非常大的数字,您可以使用 unsigned 类型。unsigned int 的最大范围是 4294967295。Note: If yo
2023-10-22

PHP消息队列实现及运用的方法是什么

这篇文章主要讲解了“PHP消息队列实现及运用的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP消息队列实现及运用的方法是什么”吧!消息队列的概念、原理、实现方式概念队列结构的一
2023-07-04

haproxy实现功能以及keepalived的使用原理是什么

这篇文章将为大家详细讲解有关haproxy实现功能以及keepalived的使用原理是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。haproxy能够实现的功能4层负载均衡,透明代理,7
2023-06-05

轻量应用服务器和虚拟主机连接方法是什么样的

轻量应用服务器和虚拟主机之间可以通过以下几种连接方法进行连接:使用公钥证书(PKI):许多轻量应用服务器提供基于PKI的连接,以支持公钥验证和身份验证,例如用于支持数字证书的服务器。使用SSH或RSA私钥对连接进行加密:轻量应用服务器通常支持SSH或RSA私钥对连接,以确保连接的安全性。使用HTTPS连接:许多轻量应用服务器支持HTTPS连接,以提供更安全的服务方式。使用VPN连接:许
2023-10-26

MySQL中“SELECT”语句的含义是什么以及如何使用它?

SELECT命令用于从MySQL数据库中获取数据。您可以在 mysql> 提示符以及任何脚本(例如 PHP)中使用此命令。语法以下是从 MySQL 表中获取数据的 SELECT 命令的通用语法 - p>SELECT field1, fiel
2023-10-22

什么是存储引擎以及如何查看MySQL安装支持的存储引擎列表?

它可以被定义为数据库管理系统(DBMS)用来处理不同的SQL操作(如创建、读取、更新和删除数据库中的数据)的软件组件。换句话说,它被DBMS用来管理数据库中的信息。最常用的存储引擎是InnoDB,它也是MySQL5.5及更高版本的默认存储引
2023-10-22

iframe框架流量分析以及以导航站为例谈框架流量的应用是怎么样的

这期内容当中小编将会给大家带来有关iframe框架流量分析以及以导航站为例谈框架流量的应用是怎么样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。框架流量这种方式通常用来投放木马、插件或者刷ALEXA排名
2023-06-12

Vue中mixins的使用方法及实际项目应用是什么

这篇文章主要介绍了Vue中mixins的使用方法及实际项目应用是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue中mixins的使用方法及实际项目应用是什么文章都会有所收获,下面我们一起来看看吧。(1)
2023-07-05

编程热搜

目录