• 一千行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)

  • 相关阅读:
    (转)Lucene.net搜索结果排序(单条件和多条件)
    .Net去html标签
    (转)Lucene.Net多字段查询,多索引查询
    HttpUtility
    内存卡问题汇总
    我的NHibernate
    (转)lucene.net和(pangu)盘古分词 搜索引擎的简单实现
    Power Designer使用技巧
    Oracle添加修改删除表字段
    在数据库开发过程中,数据库、表、字段、视图、存储过程等的命名规则
  • 原文地址:https://www.cnblogs.com/Grace7582/p/4743626.html
Copyright © 2020-2023  润新知