一千行MySQL学习笔记(九)

本文介绍了SQL编程的基础知识,包括局部变量和全局变量的声明与赋值方法,以及如何使用if、case和while等控制结构来构建复杂的SQL流程。还涵盖了如何避免变量名与系统标识符冲突的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

-- 变量声明  declare var_name[,...] type [default value]   这个语句被用来声明局部变量。要给变量提供一个默认值,请包含一个default子句。值可以被指定为一个表达式,不需要为一个常数。如果没有default子句,初始值为null。   -- 赋值  使用 setselect 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       通过退出的标签决定退出哪个循环
(未完待续)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值