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’。
  • 相关阅读:
    Openjudge NOI题库 ch0111/01 查找最近的元素
    Openjudge NOI题库 ch0111/07 和为给定数
    Openjudge NOI题库 ch0111/08 不重复地输出数
    Openjudge NOI题库 ch0111/10 河中跳房子|NOIP2015 day2 stone
    Openjudge NOI题库 ch0111/t1776 木材加工
    SRM 508(2-1000pt)
    SRM 507(2-1000pt)
    SRM 504.5(2-1000pt)
    最小生成树专题总结
    SRM 506(2-1000pt)
  • 原文地址:https://www.cnblogs.com/b-dong/p/6305520.html
Copyright © 2011-2022 走看看