sql中declare声明变量_sql怎么定义变量

sql中declare声明变量_sql怎么定义变量一、变量的分类及特点1、变量的分类总体可以分为两大类:系统变量和用户自定义变量系统变量:包括全局变量和会话变量自定义变量:包括局部变量和用户用户变量2、变量的特点:1、系统变量的特点:(1)、每个客户机成功连接服务器后,都会产生与之对应的会话。会话期间,服务实例会在服务器内存中生成与该会话对应的会话系统变量。这些会话系统变量的初始值都是全局系统变量值的复制,有了标记不同的会话,会话系统又新增了一些变量,这些变量是全局扁郎没有…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一、变量的分类及特点

 1、变量的分类总体可以分为两大类:

  系统变量 和  用户自定义变量

       系统变量包括  全局变量会话变量

       自定义变量 : 包括 局部变量 用户用户变量

2、变量的特点:

1、系统变量的特点
(1)、每个客户机成功连接服务器后,都会产生与之对应的会话。会话期间,服务实例会在服务器内存中生成与该会话对应的会话系统变量。这些会话系统变量的初始值都是全局系统变量值的复制,有了标记不同的会话,会话系统又新增了一些变量,这些变量是全局扁郎没有的。

(2)、会话系统的特点在于,它仅仅用于定义当前会话属性,会话期间对某个会话熊蓉变量值的修改,不会影响到其他会话同一个会话系统变量的值。

(3)、全局系统变量的特点在于,它适用于定义MYSQL服务实例的属性、特点。当某个会话对某个全局系统变量值的修改会导致其他会话中同一全局系统变量值的修改。

(4)、全局系统变量对所有会话系统变量生效,会话系统变量包括全局系统变量

(5)、系统变量一’@@’开头

2、自定义变量特点
(1) 、用户会话变量(以@开头),局部变量(不以@开头)

(2) 、当定义了会话系统变量,在会话期间,该会话系统变量一直有效,不同会话之间的会话系统变量是不能相互访问的。

(3) 、局部变量必须定义在存储程序中(如函数、触发器、存储过程以及事件),并且局部变量的作用范围仅仅局限于存储程序中,脱离存储程序没有丝毫意义。

二、局部变量的定义

 (一)DECLARE 命令专门用于定义局部变量及对应的数据结构。

局部变量主要用于下面三种场合:
1、定义在存储程序的BEGIN-END语句块之间,此时,先使用DECLARE定义,并且指定其数据类型,然后用SET或SELECT为其赋值。
2、当局部变量作为存储过程或者函数的参数使用,此时不用DECLARE定义,但是需要指出参数的数据类型。
3、局部变量用于SQL语句中。

(二)使用DECLARE 定义局部变量:

在流程语句分析中,我们在存储过程中使用变量的声明与设置,由于这些变量只能在存储过程中使用,因此也称为局部变量,变量的声明可以使用以下语法:

DECLARE 变量名,[变量名2....] 数据类型(type) [DEFAULT value];

其中:

DECLARE 关键字是用来声明变量的,也可以同时定义多个同数据类型的变量;
type参数用来定义变量的类型;

DEFAULAT value字句用来设置变量的默认值,没有default value字句时,变量的默认值为NULL;

DECLARE a_test int DEFAULT 2021;

//定义一个int类型的变量,变量名为a_test 并赋予默认值为2021
//也可以同时定义多个变量,数据类型是一样的,都为timestamp类型
DECLARE v_start_timestamp,v_last_timestamp TIMESTAMP;

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/171330.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月20日 上午11:16
下一篇 2022年8月20日 上午11:36


相关推荐

  • 深度解析xxl-rpc之RPC原理

    深度解析xxl-rpc之RPC原理一.什么是RPC?RPC(remoteprocesscall),中文是远程过程调用的意思。怎么理解这个远程过程调用呢?可以这样理解,可以与本地的过程调用对比下,本地过程调用,也就是调用函数或者是调用方法,比如说,在单体架构中,我们要根据用户的id获取订单信息,我们就需要找到订单service,调用getOrderInfoById(Stringid)这个方法,这个调用动作这就是本地过程调…

    2025年6月19日
    4
  • DOM「建议收藏」

    DOM「建议收藏」一、DOM简介D——document,没有文档,也就是没有网页,DOM就无从谈起。当创建了一个网页并把它加载到web浏览器中时,DOM就悄然而生。浏览器根据网页文档创建一个文档对象。O——obj

    2022年8月3日
    10
  • web漏洞扫描工具集合「建议收藏」

    web漏洞扫描工具集合「建议收藏」最好用的开源Web漏洞扫描工具梳理链接:www.freebuf.com/articles/web/155209.html赛门铁克2017年互联网安全威胁报告中提出在他们今年扫描的网站中,有76%都

    2022年8月5日
    6
  • Oracle PL/SQL编程详解之七:程序包的创建与应用

    Oracle PL/SQL编程详解之七:程序包的创建与应用Oracle PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!) 本篇主要内容如下:第七章  程序包的创建和应用7.1  程序包简介7.2  程序包的定义7.3  包的开发步骤7.4  包定义的说明7.5  子程序重载7.6  加密实用程序7.7  删除包7.8  包的管理  7.1  程序包简介    程序

    2022年6月17日
    32
  • oracle 尖括号_关于方括号和尖括号的区别

    oracle 尖括号_关于方括号和尖括号的区别1 内的内容意思是 可写可不写例如 home 下就一个 list 文件 使用 lshelp 中的 Usage ls OPTION FILE 2 那就必须要在 内给出的选择里选一个 3 lt gt 表示必选命令行语法字符在命令行语法中 某些字符与格式有着特殊的意义与含义 本文档中的命令行语法使用以下字符格式 方括号 方括号 表示里面

    2026年3月18日
    2
  • layoutparams方法_layoutinflater是什么

    layoutparams方法_layoutinflater是什么http://www.2cto.com/kf/201606/514962.html在上一篇文章里,我总结了一下自定义控件需要了解的基础知识:View的绘制流程——《自定义控件知识储备-View的绘制流程》。其中,在View的测量流程里,View的测量宽高是由父控件的MeasureSpec和View自身的LayoutParams共同决定的。MeasureSpec是什么,上一篇文章里已经说

    2026年2月6日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号