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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 划分数据集python代码_python 字符串类型

    划分数据集python代码_python 字符串类型本文将详细介绍文本分类问题并用Python实现这个过程。引言文本分类是商业问题中常见的自然语言处理任务,目标是自动将文本文件分到一个或多个已定义好的类别中。文本分类的一些例子如下:分析社交媒体中的大众情感 鉴别垃圾邮件和非垃圾邮件 自动标注客户问询 将新闻文章按主题分类更多Python视频、源码、资料加群683380553免费获取目录本文将详细介绍文本分类问题并用Pyt…

    2022年5月3日
    88
  • eclipse500错误原因解决方法_eclipse运行无法显示网页

    eclipse500错误原因解决方法_eclipse运行无法显示网页eclipse内部浏览器报错:此错误(HTTP500内部服务器错误)意味着您正在访问的网站出现了服务器问题,此问题阻止了该网页的显示修改eclipse设置即可解决:window->preferences->general->webbrowser选择使用外部浏览器即可IE浏览器设置如下:https://blog.csdn.net/txwtech/article/details…

    2022年8月11日
    9
  • 凸函数与凹函数的区别_convex中文

    凸函数与凹函数的区别_convex中文读文章和学习过程中经常会遇到concave,convex以及down,up的组合。怎样区分呢?下面有一些摘自网络的定义,不同情况下应有不同的定义,以下仅供参考:定义一:当四种都存在时:上凹(conve

    2022年8月5日
    8
  • webstorm激活码2021【注册码】[通俗易懂]

    webstorm激活码2021【注册码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
    73
  • 1190. 反转每对括号间的子串(栈|splay)[通俗易懂]

    1190. 反转每对括号间的子串(栈|splay)[通俗易懂]给出一个字符串 s(仅含有小写英文字母和括号)。请你按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串,并返回最终的结果。注意,您的结果中 不应 包含任何括号。示例 1:输入:s = “(abcd)”输出:”dcba”示例 2:输入:s = “(u(love)i)”输出:”iloveu”示例 3:输入:s = “(ed(et(oc))el)”输出:”leetcode”示例 4:输入:s = “a(bcdefghijkl(mno)p)q”输出:”apmnolkjihgf

    2022年8月11日
    4
  • ASSERT_VALID和ASSERT宏分析[通俗易懂]

    ASSERT_VALID和ASSERT宏分析[通俗易懂]这个宏都是MFC的调试宏. ASSERT_VALID宏用来在运行时检查一个对象的内部合法性,比如说现在有一个学生对象,我们知道每个学生的年龄一定大于零,若年龄小于零,则该学生对象肯定有问题。事实上,ASSERT_VALID宏就是转化为对象的成员函数Asser

    2022年9月6日
    9

发表回复

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

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