首页 理论教育 MySQL语言存储过程中的变量声明-数据库高级应用技术

MySQL语言存储过程中的变量声明-数据库高级应用技术

更新时间:2025-01-18 工作计划 版权反馈
【摘要】:在MySQL语言的存储过程中,变量有会话变量、存储过程变量两种。2)存储过程变量存储过程变量以DECLARE为关键字声明的变量,只能在存储过程中使用,其命名不需要以@开头。以DECLARE声明的变量都会被初始化为NULL,存储过程变量存在于数据库服务器上。下面为存储过程变量声明的例子。

在MySQL语言的存储过程中,变量有会话变量、存储过程变量两种。两种变量的声明方式不同,作用场景也不尽相同,在实际使用中要根据需要加以选择。

1.变量种类

1)会话变量

会话变量也称用户变量,可以在一个客户端会话的任何地方声明,作用域是整个会话,会话断开后,会话变量也就消失。会话变量名以@开头,使用set直接赋值,在一个会话内,会话变量只需初始化一次。

例如,

表示声明了一个名字叫“@num”的会话变量,其初始值为1。

2)存储过程变量

存储过程变量以DECLARE为关键字声明的变量,只能在存储过程中使用,其命名不需要以@开头。以DECLARE声明的变量都会被初始化为NULL,存储过程变量存在于数据库服务器上。

例如,

表示声明了一个名字叫“mynum”的存储过程变量,其初始值为0。

2.变量定义

存储过程变量定义格式:

其中,(1)DECLARE为声明存储过程变量的关键字;

(2)变量名可以任意,但尽可能达到能表意的目的;

(3)数据类型为MySQL的数据类型,如int, float, date, varchar(length);

(4)[DEFAULT VALUE] 为变量的初始值,可有可无,若不指定,则自动赋NULL值。(www.xing528.com)

下面为存储过程变量声明的例子。

声明一个名字为my_int,数据类型为int,默认值为4 000 000的变量:

声明一个名字为my_ numeric,数据类型为number,默认值为9.95的变量:

声明一个名字为my_ date,数据类型为date,默认值为“1999-12-31”的变量:

声明一个名字为my_ datetime,数据类型为datetime,默认值为“1999-12-31 23:59:59”的变量:

声明一个名字为my_ varchar,数据类型为varchar,默认值为“This will not be padded”的变量:

3.变量存取值

1)变量赋值

变量赋值采用关键字SET开头,后面跟变量名,赋值符号用等号“=”表示,等号的右边为所需要赋予的值。其值可以是具体值,也可以是表达式,还可以是查询返回值。

赋值格式:

存储过程变量赋值例子:

2)变量取值

存储过程变量的取值与其他面向对象的编程语言一样,直接调用变量名就可以取得变量上存储的值。

下面的例子定义了一个名字为“course_score”的存储过程变量,然后给其赋值80,最后把此变量中的值插入“course”表。

下面为一个存储过程的案例,案例以变量“mystr”为例,展示了如何定义变量,给变量赋值,以及使用变量的完整过程。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈