zoukankan      html  css  js  c++  java
  • MySQL存储过程和函数(二)

    1、BEGIN....END
    [begin_label:] BEGIN
        [statement_list]
    END [end_label]
     
    2.DECLARE语句
    DECLARE var_name[,...] type [DEFAULT value]
    局部变量的申明,如:DECLARE name VARCHAR(20);
    DECLARE仅被用在BEGIN ... END复合语句里,并且必须在复合语句的开头,在任何其它语句之前。
    光标必须在声明处理程序之前被声明,并且变量和条件必须在声明光标或处理程序之前被声明。
     
    3、变量SET语句
    SET var_name = expr [, var_name = expr] ...
    SET var = 1;
     
    4、SELECT.....INTO语句
    SELECT col_name[,...] INTO var_name[,...] table_expr
    单条记录的值INTO到对应的变量
    SELECT id,data INTO x,y FROM test.t1 LIMIT 1;

    SQL变量名不能和列名一样。如果SELECT ... INTO这样的SQL语句包含一个对列的参考,并包含一个与列相同名字的 局部变量,MySQL当前把参考解释为一个变量的名字。例如,在下面的语句中,xname 被解释为到xname variable 的参考而不是到xname column的:

    CREATE PROCEDURE sp1 (x VARCHAR(5))
      BEGIN
        DECLARE xname VARCHAR(5) DEFAULT 'bob';
        DECLARE newname VARCHAR(5);
        DECLARE xid INT;
        
    
        SELECT xname,id INTO newname,xid 
          FROM table1 WHERE xname = xname;
        SELECT newname;
      END;
    当这个程序被调用的时候,无论table.xname列的值是什么,变量newname将返回值‘bob’。
  • 相关阅读:
    tensorflow学习笔记13
    Java——内部类
    Java——枚举
    Java——代码块
    Java——static
    Java——接口
    Java——final
    Java——权限修饰符
    Java——多态
    Java——抽象类
  • 原文地址:https://www.cnblogs.com/b-dong/p/6305520.html
Copyright © 2011-2022 走看看