Java学习 - MySQL数据库中 变量 和 流程控制 实例

23 篇文章 0 订阅

变量

变量分类

  • 系统变量
    • 全局变量:对于服务器所有的连接有效
    • 会话变量:只在当前连接有效
  • 自定义变量
    • 用户变量:只在当前连接有效
    • 局部变量:仅在 BEGIN-END 中有效

系统变量

  • 查看所有的系统变量

    SHOW GLOBAL|SESSION VARIABLES;
    
  • 查看某些的系统变量

    SHOW GLOBAL|SESSION VARIABLES LIKE '%char%';
    
  • 查看指定的系统变量

    SELECT @@GOLBAL.系统变量名
    SELECT @@SESSION.系统变量名
    
  • 修改系统变量的值

    SET @@GLOBAL|SESSION.系统变量名 = 值
    

自定义变量

用户变量
  • 声明并赋值

    SET @用户变量名 = 值
    SET @用户变量名 := 值
    SELECT @用户变量名 := 值
    
  • 赋新值

    SET @用户变量名 = 值
    SET @用户变量名 := 值
    SELECT @用户变量名 := 值
    
    SELECT 字段 INTO @变量名
    FROM 表;
    
  • 使用

    @变量名
    SELECT @变量名
    
局部变量
  • 声明并赋默认值

    BEGIN
    
        DECLARE 局部变量名 变量类型 DEFAULT 默认值;
    
    END
    

流程控制

分支控制

分类
  • IF函数
  • IF语句
  • CASE语句
IF函数
  • IF(表达式1,表达式2,表达式3)
  • 如果表达式1成立,则返回表达式2执行结果,否则返回执行表达式3执行结果
  • 效果与三目运算符类似
IF语句
IF 条件
    THEN 语句1;
    ELSEIF 语句2;
    ELSE 语句3;
END IF;
CASE语句【唯一的奇葩:一个分号都不带】
  • 类似于 switch 语句

    # 都不用加分号
    
    CASE 变量|表达式|字段
        WHEN 要判断的值 THEN 返回的值1
        WHEN 要判断的值 THEN 返回的值2
        ...
        WHEN 要判断的值 THEN 返回的值n
        ELSE 要返回的值n+1
    END CASE
    
  • 类似多重if语句

    # 都不用加分号
    
    CASE
        WHEN 要判断的条件1 THEN 返回的值1
        WHEN 要判断的条件2 THEN 返回的值2
        ...
        WHEN 要判断的条件n THEN 返回的值n
        ELSE 要返回的值n+1
    END
    
  • 注意:ELSE可以省略,如果省略了且匹配不到,则返回NULL

循环控制

使用场景
  • 只能在函数或存储过程中使用
分类
  • WHILE
  • LOOP
  • REPEAT
  • 循环控制语句
    • 必须配合标签使用
    • ITERATE:类似continue
    • LEAVE:类似break
WHILE
【标签:】WHILE 循环条件 DO

    循环体【每句都要带分号】
    
END WHILE【标签】;
LOOP
【标签:】 LOOP

    循环体【每句都要带分号】
    
END LOOP 【标签】;
REPEAT
【标签:】REPEAT

    循环体【每句都要带分号】
    
UNTIL 结束循环条件 END REPEAT【标签】;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值