zoukankan      html  css  js  c++  java
  • 一千行MySQL学习笔记(九)

    /* SQL编程 */ ------------------

    --// 局部变量 ----------

    -- 变量声明 declare var_name[,...] type [default value] 这个语句被用来声明局部变量。要给变量提供一个默认值,请包含一个default子句。值可以被指定为一个表达式,不需要为一个常数。如果没有default子句,初始值为null。 -- 赋值 使用 set select into 语句为变量赋值。
    - 注意:在函数内是可以使用全局变量(用户自定义的变量)

    --// 全局变量 ----------

    -- 定义、赋值
    set 语句可以定义并为变量赋值。
    set @var = value;也可以使用select into语句为变量初始化并赋值。这样要求select语句只能返回一行,但是可以是多个字段,就意味着同时为多个变量进行赋值,变量的数量需要与查询的列数一致。还可以把赋值语句看作一个表达式,通过select执行完成。此时为了避免=被当作关系运算符看待,使用:=代替。(set语句可以使用= 和 :=)。

    select @var:=20;
    select @v1:=id, @v2=name from t1 limit 1;
    select * from tbl_name where @var:=30;

    select into 可以将表中查询获得的数据赋给变量。
    -| select max(height) into @max_height from tb;

    -- 自定义变量名

    为了避免select语句中,用户自定义的变量与系统标识符(通常是字段名)冲突,用户自定义变量在变量名前使用@作为开始符号
    @var=10;

    - 变量被定义后,在整个会话周期都有效(登录到退出)

    --// 控制结构 ----------

    -- if语句

    if search_condition then statement_list [elseif search_condition then statement_list]
    ...
    [else statement_list]
    end if;

    -- case语句

    CASE value WHEN [compare-value] THEN result
    [WHEN [compare-value] THEN result ...]
    [ELSE result]
    END

    -- while循环

    [begin_label:] while search_condition do statement_list
    end while [end_label];

    - 如果需要在循环内提前终止 while循环,则需要使用标签;标签需要成对出现。

    -- 退出循环
    退出整个循环 leave 退出当前循环 iterate 通过退出的标签决定退出哪个循环
    (未完待续)

             (作者:Shocker 来源:http://www.cnblogs.com/shockerli/p/1000-plus-line-mysql-notes.html)

  • 相关阅读:
    CF1082E Increasing Frequency
    CF1083B The Fair Nut and String
    week2
    CF1082G Petya and Graph
    后缀数组学习笔记
    单纯形法
    验证rbd的缓存是否开启
    如何删除一台OSD主机
    Mon失效处理方法
    查询osd上的pg数
  • 原文地址:https://www.cnblogs.com/Grace7582/p/4743626.html
Copyright © 2011-2022 走看看