我只是一个在沙滩上捡贝壳的小男孩,梦想有一天可以发现知识的真理~~~

存储过程--变量

变量在一个逻辑里的作用是非常小可的!


变量定义

形式:

  1. DECLARE variable_name [,variable_name...] datatype [DEFAULT value];
其中,datatype为MySQL的数据类型,如:int, float, date, varchar(length)
例如:

  1. DECLARE l_int int unsigned DEFAULT 4000000;
  2. DECLARE l_numeric number(8,2) DEFAULT 9.95;
  3. DECLARE l_date date DEFAULT '1999-12-31';
  4. DECLARE l_datetime datetime DEFAULT '1999-12-31 23:59:59';
  5. DECLARE l_varchar varchar(255) DEFAULT 'This will not be padded';




Ⅱ. 变量赋值
 SET 变量名 = 表达式值 [,variable_name = expression ...]

Ⅲ. 用户变量

ⅰ. 在MySQL客户端使用用户变量
mysql > SELECT 'Hello World' into @x; 
mysql > SELECT @x; 
+-------------+ 
| @x | 
+-------------+ 
| Hello World | 
+-------------+ 
mysql > SET @y='Goodbye Cruel World'; 
mysql > SELECT @y; 
+---------------------+ 
| @y | 
+---------------------+ 
| Goodbye Cruel World | 
+---------------------+ 

mysql > SET @z=1+2+3; 
mysql > SELECT @z; 
+------+ 
| @z | 
+------+ 
| 6 | 
+------+ 
ⅱ. 在存储过程中使用用户变量
mysql > CREATE PROCEDURE GreetWorld( ) SELECT CONCAT(@greeting,' World'); 
mysql > SET @greeting='Hello'; 
mysql > CALL GreetWorld( ); 
+----------------------------+ 
| CONCAT(@greeting,' World') | 
+----------------------------+ 
| Hello World | 
+----------------------------+ 

ⅲ. 在存储过程间传递全局范围的用户变量
mysql> CREATE PROCEDURE p1() SET @last_procedure='p1'; 
mysql> CREATE PROCEDURE p2() SELECT CONCAT('Last procedure was ',@last_proc); 
mysql> CALL p1( ); 
mysql> CALL p2( ); 
+-----------------------------------------------+ 
| CONCAT('Last procedure was ',@last_proc | 
+-----------------------------------------------+ 
| Last procedure was p1 | 
+-----------------------------------------------+ 


注意:
①用户变量名一般以@开头
②滥用用户变量会导致程序难以理解及管理

posted @ 2017-06-17 18:36  瓜不甜  阅读(154)  评论(0编辑  收藏  举报

全栈开发工程师 - 一只菜鸟的成长之路

这是一位软件开发工程师的个人站,内容主要是网站开发方面的技术文章,大部分来自学习或工作,部分来源于网络,希望对大家有所帮助。

联系我:2351180282@qq.com