代码执行结构 函数 存储过程

2017-10-25  本文已影响0人  咸鱼有梦想呀

一、代码执行结构

1.分支结构

分支结构:实现多个代码块,按照条件选择性执行某段代码
在MySQL中只有if分支

基本语法:

if 条件判断 then
-- 满足条件要执行的代码
else
-- 不滿足条件要执行的代码
end if;

触发器结合if分支

触发器结合if分支 影响

2.循环结构

循环结构:某段代码在指定条件下执行重复。

while循环

基本语法

while 条件判断 do
-- 满足条件要执行的代码
-- 变更循环条件
end while;

(1)循环控制

在循环内部进行循环判断和控制

iterate:迭代,类似continue,后面代码不执行,循环重新来过
leave:离开,类似break,整个循环接收

使用方式:
iterate/leave 循环名字;

定义循环名字
循环名字:while 条件 do
-- 循环体
-- 循环控制
leave/iterate 循环名字;
end while;

二、函数

函数:将一段代码块封装到一个结构中,在需要执行代码块的时候,调用结果执行即可。(代码复用)

MySQL字符串的基本操作单位

substring:字符串截取(字符为单位)

字符串截取

char_length:字符长度
length:字节长度

字符,字节长度

instr:判断字符串是否在某个具体的字符串中存在,存在返回位置

字符串寻找

lpad:左填充,将字符串按照某个指定的填充方式,填充到指定长度(字符单位)

字符串填充

insert:替换,找到目标位置,指定长度的字符串,替换成目标字符串

字符串替换

strcmp:compere,字符串比较

字符串比较

函数要素:函数名,参数列表(形参和实参),返回值,函数体(作用域)

(1)创建函数

创建语法
create function 函数名([形参列表])returns 数据类型 -- 规定要返回的数据类型
begin
-- 函数体

-- 返回值:return 类型(指定数据类型);
end

创建函数

自定义函数和系统函数调用方式是一样的:select 函数名([实参列表])

调用函数

(2)查看函数

查看所有函数:
show function status;
查看函数的创建语句:
show create function 函数名;

查看所有函数 查看函数的创建语句

(3)修改函数&&删除函数

函数只能先删除后新增,不能修改

drop function 函数名;

删除函数

函数参数
参数分为两种

必须指定数据类型
function 函数名(形参名 字段类型) returns 数据类型

举个栗子

函数运用 函数检验

作用域

MySQL中全局变量可以在任何地方使用;局部变量只能在函数内部使用

全局变量:使用set关键字定义,使用@符号标志
局部变量:使用declare关键字声明,没有@符号。所有的局部变量的声明,必须在函数体开始之前

局部变量的应用

三、存储过程(procedure)

存储过程是一种没有返回值的函数,是一种用来处理数据的方式。

(1)创建过程

create procedure 过程名([参数列表])
begin
-- 过程体
end

创建过程

(2)查看过程

函数的查看方式完全适用于过程:关键字换成procedure

查看所有过程
show procedure status;
或者
show procedure status [like 'pattern'];

查看所以过程

查看过程创建语句
show create procedure 过程名;

查看过程创建语句

(3)调用过程

过程没有返回值:select是不能访问的

调用过程关键字:call

调用过程

(4)修改过程&&删除过程

过程不能修改,只能先删除后新增

删除过程
drop procedure 过程名;

删除过程

(5)过程参数

函数的参数需要数据类型指定,过程需要类型限定:三种类型

基本使用
create procedure 过程名(in 形参名 数据类型,out 形参名 数据类型,inout 形参名 数据类型)

过程参数

调用:out和inout类型的参数必须传入变量,不能是变量。

调用

存储过程对于变量的操作是滞后的:是在存储过程调用结束的时候,才会重新将内部的值赋给外部传入全局变量

过程参数 调试

最后,在存储过程调用结束之后,系统会将局部变量重复返回给全局变量(out和inout)

验证
上一篇下一篇

猜你喜欢

热点阅读