服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|

服务器之家 - 数据库 - Mysql - mysql 存储过程中变量的定义与赋值操作

mysql 存储过程中变量的定义与赋值操作

2019-11-07 16:27mysql教程网 Mysql

昨天我们讲了mysql存储过程创建修改与删除,下面我们这篇教程是讲关于mysql存储过程中变量的定义赋值操作哦。

一、变量的定义 
mysql中变量定义用declare来定义一局部变量,该变量的使用范围只能在begin...end 块中使用,变量必须定义在复合语句的开头,并且是在其它语句之前,也可以同时申明多个变量,如果需要,可以使用default赋默认值。 
定义一个变量语法如下: 
declare var_name[,...] type[default value]看一个变量定义实例 
declare last date;二、mysql存储过程变量赋值 
变量的赋值可直接赋值与查询赋值来操作,直接赋值可以用set来操作,可以是常量或表达式如果下 

复制代码代码如下:


set var_name= [,var_name expr]...给上面的last变量赋值方法如下 
set last = date_sub( current_date(),interval 1 month);下面看通过查询给变量赋值,要求查询返回的结果必须为一行,具体操作如下 
select col into var_name[,...] table_expr我们来通过查询给v_pay赋值。 
create function get _cost(p_custid int,p_eff datetime) 
return decimal(5,2) 
deterministic 
reads sql data 
begin 
declare v_pay decimail(5,2); 
select ifnull( sum(pay.amount),0) into vpay from payment where pay.payd<=p_eff and pay.custid=pid 
reutrn v_rent + v_over - v_pay; 
end $$ 


好了,这篇简单的存储过程中变量的定义赋值教程就到这里了,下面我们会接着讲关于myql存储过程的条件的定义与处理。 

以下是其它网友的补充 

在MySQL的存储过程中,可以使用变量,它用于保存处理过程中的值。 

定义变量使用DECLARE语句,语法格式如下: 

DECLARE var_name[,...] type [DEFAULT value] 

其中,var_name为变量名称,type为MySQL支持的任何数据类型,可选项[DEFAULT value]为变量指定默认值。一次可以定义多个同类型的变量,各变量名称之间以逗号“,”隔开。 

定义与使用变量时需要注意以下几点: 

◆ DECLARE语句必须用在DEGIN…END语句块中,并且必须出现在DEGIN…END语句块的最前面,即出现在其他语句之前。 

◆ DECLARE定义的变量的作用范围仅限于DECLARE语句所在的DEGIN…END块内及嵌套在该块内的其他DEGIN…END块。 

◆ 存储过程中的变量名不区分大小写。 

定义后的变量采用SET语句进行赋值,语法格式如下: 

SET var_name = expr [,var_name = expr] ... 

其中,var_name为变量名,expr为值或者返回值的表达式,可以使任何MySQL支持的返回值的表达式。一次可以为多个变量赋值,多个“变量名=值”对之间以逗号“,”隔开。 

例如: 

复制代码代码如下:


begin 
declare no varchar(20); 
declare title varchar(30); 
set no='101010',title='存储过程中定义变量与赋值'; 
end 


提示:存储过程中所有的关键字也是不区分大小写的,如BEGIN可以写出begin。

延伸 · 阅读

精彩推荐
  • MysqlMySQL两种表存储结构MyISAM和InnoDB的性能比较测试

    MySQL两种表存储结构MyISAM和InnoDB的性能比较测试

    MySQL支持的两种主要表存储格式MyISAM,InnoDB,上个月做个项目时,先使用了InnoDB,结果速度特别慢,1秒钟只能插入10几条。后来换成MyISAM格式,一秒钟插入...

    mysql教程网2072019-10-16
  • Mysqlmysql 服务完全卸载技巧

    mysql 服务完全卸载技巧

    在你从电脑里卸载旧的MYSQL数据库服务时,首先先在WINDOWS服务里停掉MYSQL的服务。再到控制面板里的增加删除程序内进行删除,但是你并不能完整的把MYSQ...

    mysql教程网4092019-10-29
  • MysqlMYSQL数据库服务的磁盘IO高问题分析与优化

    MYSQL数据库服务的磁盘IO高问题分析与优化

    压力测试过程中,因为资源使用瓶颈等问题引发的最直接的性能问题是业务交易响应时间偏大,TPS逐渐降低等。而问题定位分析通常情况下,最优先排查的...

    IT品课信息咨询/郭柏雅3442019-06-13
  • Mysqlmysql 存储过程的问题

    mysql 存储过程的问题

    最近我接触了一本php 与 mysql,老外写的一本书,书中有个tshirtshop网店代码,其中操作数据库的大多用的是mysql存储过程 ...

    mysql教程网3762019-10-27
  • MysqlADODB 入门

    ADODB 入门

    1. 前言 ADODB 是 Active Data Objects Data Base 的简称,它是一种 PHP 存取数据库的函式组件。现在 SFS3 系统 (校园自由软件交流网学务系统) 计划的主持人陈莹光老...

    脚本之家2652019-10-16
  • Mysqlmysql语句如何插入含单引号或反斜杠的值详解

    mysql语句如何插入含单引号或反斜杠的值详解

    这篇文章主要给大家介绍了关于mysql语句如何插入含单引号或反斜杠的值的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定...

    nemo4912019-06-05
  • MysqlMySQL和SQLServer的比较

    MySQL和SQLServer的比较

    对于程序开发人员而言,目前使用最流行的两种后台数据库即为 MySQL 和 SQLServer 。这两者最基本的相似之处在于数据存储和属于查询系统。你可以使用sql来...

    mysql教程网1812019-10-16
  • MysqlMySQL普通索引和唯一索引的深入讲解

    MySQL普通索引和唯一索引的深入讲解

    这篇文章主要给大家介绍了关于MySQL普通索引和唯一索引的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值...

    点滴积累3552019-06-09