mysql数据库编程
1、编程,就是一种“逻辑代码”,具有如下3个特点:
1,变量的使用;
2,流程控制结构的使用;
3,函数的使用;
语句块包含符
begin
。。。。
end
它相当于js或php中的“大括号”使用场合。
不过,mysql,它更灵活一些:

2、该结构可以设定“标识符”,该标识符用于“代表”该语句块结构。则内部可以使用该标识符,以“退出”该语句块结构,比如:
AAA: begin
.......
if ( ... ) then
begin
leave AAA; //这里就是退出该AAA语句块。
end;
end if;
end AAA ;
3、流程控制
if分支结构

4、case分支结构
有两种形式:

5、示意性代码1(形式1):
set @v1 = 1; #定义变量并赋值
case @v1
when 1 then
begin
分支1.。。。,可以做具体的各种计算,以及增删改查。。。
set @v2 = @v1*3 + 4;//计算
insert into .....;
update .....;
delete .....;
select ......
end;
when 2 then
begin
分支2.。。。
end;
......
else
begin
分支else.。。。
end;
end case;
示意性代码2(形式2):
set @v1 = 5;
case
when @v1 < 3 then
begin
......
end;
when @v1 >= 3 and @v1 <= 5 then
begin
......
end;
......
end case;
1、BBB : loop
begin
这里才是循环体的语句,中间可以通过BBB标识符来退出该循环;
end;
end loop BBB;
while循环结构
while (条件判断) do
begin
。。。。循环体语句
end;
end while;
while语句:先判断,成立后进入循环;
repeat循环结构
repeat
begin
。。。。语句块。。。
end;
until 判断条件;
end repeat;
repeat循环结构:第一次会无条件进入循环体中。其后,循环条件满足就又进入。
变量
分两种变量:
常规变量:
变量名直接写,但必须:先声明,后使用;
声明:
declare 变量名 变量类型 【default 初始值】;
使用:
赋值:set 变量名 = 值;
然后,在任何需要数据的场合都可以用它;
限制:
常规变量,只能在“定义函数”“定义存储过程”,“定义触发器”的3种情形下使用。
会话变量:
变量名前面必须带“@”符号,可以直接赋值,并使用——跟php很像。
可以在任何场合使用;
存储函数
存储函数就是函数!——只是规定:其必须返回一个数据值;
我们系统内部也有一些函数,比如:
md5(), now(), version(), mid() .....
所有函数,都有一个返回值;
我们使用的时候,就要把该函数的调用当做一个值来看待并使用。
则:
我们自己定义的函数,也可以同样使用。

2、定义形式:

3、函数中语句,可以有:
变量定义和使用;
流程控制语句;
数据表的增删改操作; #不可以进行查询操作(select, show, desc)
举例:

1、存储过程还是函数!——只是规定:存储函数不能返回数据值;
定义形式:

2、补充说明:
1,该存储过程中,不能使用return语句返回数据;
2,而存储过程中,其中的select会返回结果集,只是作为“数据查询结果”(表的形式),而不是作为“存储过程”执行后得到的“单个数据”。
3,其中,形参前面可以带:in, 或out, 或inout修饰符,其含义分别为:
in:表示该形参是接收实参传过来的数据,也就是最常见的情形,默认不写就是它;
out:表示该形参是用于将函数内部的数据传出给对应的实参,此时实参必须是变量
inout:具有上述2个功能。此时,其对应实参也必须是变量。
存储过程调用形式:
call 存储过程名(实参1,实参2,....)
在php中,也可以调用它,类似这样:
<?php
$result = mysql_query(“call getStuByGender(‘男’) ”);
?>
举例:


3、演示2:使用in,out,inout的形参:


4、再来验证@m2, @m3的值:
