zoukankan      html  css  js  c++  java
  • 存储过程--变量

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


    变量定义

    形式:

    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 | 
    +-----------------------------------------------+ 


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

  • 相关阅读:
    实现自我的互联网时代(2020时事与科技前沿思辨(博雅课)课程论文)
    学不会OO的第四单元反思
    学不会OO的第三单无反思(尽管刚才让JML爪8但是JUnit真的是个好东西
    学不会OO的第二单元反思
    学不会OO的第一单元反思
    2020北航面向对象第四单元总结
    2020北航面向对象第三单元总结
    2020北航面向对象第二单元总结
    2020北航面向对象第一单元总结
    提问回顾与个人总结
  • 原文地址:https://www.cnblogs.com/xujintao/p/7041012.html
Copyright © 2011-2022 走看看