mysql编程

基本语法

语句块模式:

mysql 语句块语法 mysql能写语句块么_mysql 语句块语法

在mysql编程中,begin…end;基本代替了原来编程语句中的{…}语法。

但又有所区别:一个bigin…end;块,可以给定一个“标识符”,并且可以使用leave语句来“退出”该语句块。

流程控制语句

if语句

mysql 语句块语法 mysql能写语句块么_mysql编程_02

case语句

类似js中的switch case

mysql 语句块语法 mysql能写语句块么_mysql流程控制语句_03

loop语句

mysql 语句块语法 mysql能写语句块么_mysql编程_04

while循环语句

mysql 语句块语法 mysql能写语句块么_基本语法_05

repeat语句

mysql 语句块语法 mysql能写语句块么_mysql编程_06

leave语句

语法:leave 标识符;

其作用是用来退出begin…end结构或其他具有标识符的结构。

环境

有两种环境:

  • 常规mysql命令环境
  • 可以执行增删改查操作,执行各种create,insert,delete,update,select等语句。
  • 不能使用变量和流程控制语句。
  • 编程环境
  • 在特定的语句语法内部:存储过程内,存储函数内,触发器内。
  • 可以使用变量和流程控制语句。

变量

两种变量:

普通变量:不带@符,直接写名字,必须先声明,后使用(赋值之类),只能用于编程环境。

会话变量:带@符,无需声明,直接使用(先赋值),可以用于2种环境。

变量声明

普通变量的声明语法

declare 变量名 变量类型 [default 初始值]; 

# 类似js中使用var定义变量(并赋值)

注意:其只能在begin…end这种复合语句结构中。

会话变量

mysql还有一种变量形式,可以称为“会话变量”。

会话变量无需单独声明,而是直接赋值就可以,类似php

@变量名;

会话变量可以在普通命令行环境中或编程环境中使用。

变量赋值

变量的赋值语法

set 变量名 = 变量值;

会话变量的赋值

set  变量名 = 值;

语法1

set 变量名 = 表达式;

# 此语法中的变量必须先使用declare声明

mysql 语句块语法 mysql能写语句块么_基本语法_07

语法2

set @变量名 = 表达式;

# 此方式可以无需declare语法声明,而是直接赋值,类似php定义变量并赋值。

mysql 语句块语法 mysql能写语句块么_mysql 语句块语法_08

语法3

select @变量名 := 表达式;

# 此语句会给该变量赋值,同时还会作为一个select语句输出“结果集”。

mysql 语句块语法 mysql能写语句块么_mysql编程_09

语法4

select 表达式 into @变量名;

# 此语句虽然看起来是select语句,但其实并不输出“结果集”,而只是给变量赋值。

mysql 语句块语法 mysql能写语句块么_mysql流程控制语句_10

mysql 语句块语法 mysql能写语句块么_基本语法_11

当然,也可以进行运算:

mysql 语句块语法 mysql能写语句块么_mysql变量_12

注意:上述语法中变量形式的区别:

“@变量名”形式可以在非程序语句中使用,而不带“@”的变量名只能在程序语句中(比如begin …end范围),且后者必须先声明(declare语法)才能赋值。