返回顶部
首页 > 资讯 > 数据库 >MySQL 自定义变量的概念及特点
  • 552
分享到

MySQL 自定义变量的概念及特点

MySQL自定义变量MySQL变量 2022-05-22 03:05:45 552人浏览 薄情痞子
摘要

Mysql 的自定义 就是存储值的临时容器,只要与服务端的连接是活跃的,容器中的值可以保存和使用。可以通过简单的 SET 或 SELECT语句 设置自定义变量,如下所示: SET @one := 1; S

Mysql 的自定义 就是存储值的临时容器,只要与服务端的连接是活跃的,容器中的值可以保存和使用。可以通过简单的 SET 或 SELECT语句 设置自定义变量,如下所示:


SET @one := 1;
SET @min_actor := (SELECT MIN(actor_id) FROM sakila.actor);
SET @last_week := CURRENT_DATE-INTERNAL 1 WEEK;

定义好变量后,就可以在 sql 语句中使用这个变量:


SELECT * FROM film WHERE created_date <= @last_week;

虽然 mysql 自定义变量很强大,但是也需要知道自定义变量本身也是有缺陷的,这些缺陷包括:

  • 自定义变量会禁用查询缓存
  • 不可以用做替代语义上的标识符,例如表名称或列名称,或者是在 LIMIT 子句中使用。
  • 自定义变量是基于单次连接的,因此不可以跨连接使用。
  • 如果使用连接池或持久连接,自定义变量会导致你的代码与交互隔离,这出现的时候可能是代码的 bug 或连接池的 bug,但是是可能发生的。
  • 在 MySQL 5.0以前的版本中是大小写敏感的,因此要注意(在 MySQL 5.0以后已经不区分大小写了)。
  • 无法显示地指定变量类型,而实际变量的类型依赖于不确定的类型推断,并且不同的版本会有差异,最好的方式是在一开始定义的时候指定类型,比如使用0设定整数变量,0.0设定浮点数变量,''用于字符串。但是如果后面指定了新的值,类型会跟随新的值改变,这是因为 MySQL 的自定义变量的类型是动态的。
  • 优化器在某些情况下有可能会将自定义变量优化掉,导致无法按照期望的方式进行查询。
  • 赋值的次序,甚至包括赋值的时间都是不确定的,这取决于优化器选择的查询计划。因此,最终的结果可能让人困惑。
  • 赋值操作符的优先级低于任何其他操作符,因此必须显示地使用括号。
  • 未定义变量不会报错,这很容导致错误出现。

自定义变量可以用在所有类型的语句中,而不仅仅是 SELECT 语句。事实上,这是自定义变量的一个最大的优势。例如,我们可以重写复杂的查询,例如利用子查询进行排序的计算,或者是完成一次低代价的UPDATE 语句。

有些时候,优化器会认为这个变量是编译时常量而不进行赋值,这会导致期望的行为很怪异。而将自定义变量的赋值放入类似 LEAST函数中通常会避免这个问题。另一个方式是在使用之前检查一下自定义变量是否有值。有时候你想这样做,但有些时候你不想这么做。

通过一些小的实验,我们可以使用自定义变量做很多有趣的事情,例如:

  • 计算总量和平均值;
  • 对于分组查询模拟 FIRST 和 LAST 函数;
  • 对于很大的数做数学运算;
  • 将一整张表转换成 MD5哈希值;
  • 过滤掉0值附近但超过设定边界的样本值;
  • 模拟读写指针位置;
  • 将变量嵌入到 WHERE 条件并在 SHOW 语句中显示。

自定义变量在某些应用场合很有用,例如统计出现次数的排序值,计算更新和插入相同数据的次数,以及延迟的联合查询,下一篇文章将介绍具体的用法。

以上就是MySQL 的自定义变量的概念及特点的详细内容,更多关于MySQL 自定义变量的资料请关注自学编程网其它相关文章!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL 自定义变量的概念及特点

本文链接: https://lsjlt.com/news/10313.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL 自定义变量的概念及特点
    MySQL 的自定义 就是存储值的临时容器,只要与服务端的连接是活跃的,容器中的值可以保存和使用。可以通过简单的 SET 或 SELECT语句 设置自定义变量,如下所示: SET @one := 1; S...
    99+
    2022-05-22
    MySQL 自定义变量 MySQL 变量
  • python变量的概念及定义是什么
    这篇文章主要讲解了“python变量的概念及定义是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python变量的概念及定义是什么”吧!说明变量是指编程者在代码中为某一数据取得的名称,在...
    99+
    2023-06-30
  • MYSQL中的变量的概念
    本篇内容主要讲解“MYSQL中的变量的概念”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MYSQL中的变量的概念”吧!变量分为用户变量与系统变量。用户变量:&n...
    99+
    2024-04-02
  • JavaScript的概念及其特点介绍
    这篇文章主要介绍“JavaScript的概念及其特点介绍”,在日常操作中,相信很多人在JavaScript的概念及其特点介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Ja...
    99+
    2024-04-02
  • 云服务器的概念及特点
    云服务器(Cloud Direct Server,简称CDN)是一种通过互联网为用户提供网络加速和存储服务的技术。在云服务器中,计算、存储、备份、网络等服务器资源均集中在云服务器中心服务器上,由用户自行管理和分配,用户不再需要购买服务器硬件...
    99+
    2023-10-26
    概念 服务器
  • static定义的变量有哪些特点
    静态变量(static variable)具有以下特点:1. 生命周期长:静态变量在程序运行期间一直存在,直到程序结束才会被销毁。2...
    99+
    2023-09-14
    static
  • mysql变量怎么自定义
    这篇文章主要介绍“mysql变量怎么自定义”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“mysql变量怎么自定义”文章能帮助大家解决问题。系统变量简介1、系统变量 ...
    99+
    2022-11-30
    mysql
  • MySQL中怎么自定义变量
    MySQL中怎么自定义变量,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.自定义变量---自我介绍大家好,我是mysql自定...
    99+
    2024-04-02
  • python中的变量概念及算术运算
    python是一种动态类型语言(动态类型语言:直接被解释器执行不需要进行编译) 程序运行当中变量可以绑定到不同类型的值.(变量:程序运行中可以发生变化的量)接下来我们用复利计算来说明一下python的这一个特性:price  = 1000;...
    99+
    2023-01-31
    算术 变量 概念
  • MySQL自定义变量自增——@rownum:= @rownum+1
    初识Mysql自定义变量 有时候一张表虽然设置了ID自增,但是经过一系列业务增删骚操作后自增的ID也不是那么有序,MySQL中又没有获取行号的函数,因此我们需要通过一些自定义语句来进行获取。 通常的做法是:通过定义自定义变量@ro...
    99+
    2023-08-16
    mysql 数据库 database
  • Android适配器(Adapter)的概念与自定义
    目录一、什么是适配器二、Adapter基本概念和继承关系三、自定义适配器实例1.文件结构2.xml内容3.java内容四、参考资料总结一、什么是适配器 在常见软件中,往往能看到列表...
    99+
    2024-04-02
  • React的概念是什么及有哪些特点
    这篇文章主要介绍“React的概念是什么及有哪些特点”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“React的概念是什么及有哪些特点”文章能帮助大家解决问题。react 是什么?React 是 Fa...
    99+
    2023-06-27
  • 云服务器的概念及特点是什么
    云服务器(Cloud Server)是一种通过互联网提供云服务的服务器,它允许用户通过互联网访问、使用云服务器中的数据和功能。云服务器提供的云服务种类很多,包括但不限于: 虚拟服务器(Virtual Server):一种可以将多个服务器...
    99+
    2023-10-26
    概念 服务器
  • MySQL 自定义变量@ 常用案例
    以下文章来源于SQL开发与优化,作者郑松华 大家好,我是知数堂SQL 优化班老师 网名:骑龟的兔子 很久没有写文章,最近碰到了一个非常有意思的Oracle SQL 案例, 这个案例,我用了一些窗口函数来解决的,后来想想,能否跟MySQL...
    99+
    2019-03-05
    MySQL 自定义变量@ 常用案例
  • mysql中自定义变量是什么
    这篇文章给大家分享的是有关mysql中自定义变量是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、用户变量作用域:针对于当前会话(连接)有效,作用域同于会话变量声明并初始化:赋值操作符:=或:=SET&nb...
    99+
    2023-06-15
  • 云服务器的概念及特点是什么呢
    云服务器(Cloud Docker)是一种云计算技术,它通过虚拟化技术将计算资源分布于多个云计算节点上,用户在访问云服务器时只需要一台设备、一个网络连接和一点存储即可访问多个云计算节点提供的云服务。 云服务器的概念是一个广泛的定义,可以从...
    99+
    2023-10-26
    什么呢 概念 服务器
  • 云服务器的概念及特点是什么意思
    云服务器(Cloud Drive)是一种通过互联网提供云服务的服务器,可以通过互联网直接访问。与传统的本地或远程服务器相比,云服务器通常具有以下的特点和优势: 快速的部署和扩展能力:云服务器采用分布式架构,可以快速地将服务器部署和扩展到...
    99+
    2023-10-26
    概念 服务器
  • 云服务器的定义及特点
    云服务器(Cloud Drive)是一种基于互联网的服务器,它可以提供高性能的计算,存储和网络资源,使您可以轻松地进行大规模数据存储和计算。 云服务器通常采用虚拟化技术来降低成本,并通过自动化部署和自动化管理来提高效率。云服务器通常具有以...
    99+
    2023-10-26
    定义 服务器
  • vue3如何定义变量及ref、reactive、toRefs特性说明
    目录vue3定义变量及ref、reactive、toRefs特性1.ref() 函数2.reactive() 函数3.toRefs() 函数vue3定义变量1.const 声明变量2...
    99+
    2024-04-02
  • 云服务器的概念及特点是什么意思啊
    云服务器(Cloud Direct Server,简称CDN)是一种通过互联网向用户提供动态、便捷、高速的内容加载服务的技术。 云服务器使用强大的计算能力、存储和网络资源来加速网络访问速度。它使用分布式存储技术来保存用户的请求,同时根据用...
    99+
    2023-10-26
    概念 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作