mysql编程
基本语法
语句块模式:
在mysql编程中,begin…end;基本代替了原来编程语句中的{…}语法。
但又有所区别:一个bigin…end;块,可以给定一个“标识符”,并且可以使用leave语句来“退出”该语句块。
流程控制语句
if语句
:
case语句
:
类似js中的switch case
loop语句
:
while循环语句
:
repeat语句
:
leave语句
:
语法:leave 标识符;
其作用是用来退出begin…end结构或其他具有标识符的结构。
环境
有两种环境:
- 常规mysql命令环境
- 可以执行增删改查操作,执行各种create,insert,delete,update,select等语句。
- 不能使用变量和流程控制语句。
- 编程环境
- 在特定的语句语法内部:存储过程内,存储函数内,触发器内。
- 可以使用变量和流程控制语句。
变量
两种变量:
普通变量:不带@符,直接写名字,必须先声明,后使用(赋值之类),只能用于编程环境。
会话变量:带@符,无需声明,直接使用(先赋值),可以用于2种环境。
变量声明
普通变量的声明语法
:
declare 变量名 变量类型 [default 初始值];
# 类似js中使用var定义变量(并赋值)
注意:其只能在begin…end这种复合语句结构中。
会话变量
:
mysql还有一种变量形式,可以称为“会话变量”。
会话变量无需单独声明,而是直接赋值就可以,类似php
@变量名;
会话变量可以在普通命令行环境中或编程环境中使用。
变量赋值
变量的赋值语法
:
set 变量名 = 变量值;
会话变量的赋值
:
set 变量名 = 值;
语法1
:
set 变量名 = 表达式;
# 此语法中的变量必须先使用declare声明
语法2
:
set @变量名 = 表达式;
# 此方式可以无需declare语法声明,而是直接赋值,类似php定义变量并赋值。
语法3
:
select @变量名 := 表达式;
# 此语句会给该变量赋值,同时还会作为一个select语句输出“结果集”。
语法4
:
select 表达式 into @变量名;
# 此语句虽然看起来是select语句,但其实并不输出“结果集”,而只是给变量赋值。
当然,也可以进行运算:
注意:上述语法中变量形式的区别:
“@变量名”形式可以在非程序语句中使用,而不带“@”的变量名只能在程序语句中(比如begin …end范围),且后者必须先声明(declare语法)才能赋值。