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

一、代码执行结构

  • 顺序结果
  • 分支结构
  • 循环结构

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;

二、函数

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

  • 系统函数
    系统定义好的函数,直接调用即可。
    任何函数都有返回值,因此函数的调用是通过select调用。

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)过程参数

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

  • in:数据只是从外部传入给内部使用(值传递)。可以是数值也可以是变量
  • out:只允许过程内部使用(不用外部数据),给外部使用的(引用传递:外部的数据会被先清空才回进入到内部),只能是变量
  • inout:外部可以在内部使用,内部修改也可以给外部使用,典型的引用传递:只能传变量

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

过程参数

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

调用

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

过程参数
调试

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

验证
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,744评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,505评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,105评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,242评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,269评论 6 389
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,215评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,096评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,939评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,354评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,573评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,745评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,448评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,048评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,683评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,838评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,776评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,652评论 2 354

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,625评论 18 399
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,233评论 0 4
  • 这是前几天在论坛上看到一个大学生写的帖子,现在他一月可以赚20000,我没有弄清楚是但vps挂机赚那么多还是有其他...
    medman阅读 2,283评论 0 1
  • 自己经常睡觉的时候突然身体抖一下就醒了。于是上网查“睡觉时身体突然抖一下的原因”,然后一个医生给我的答案是“ 睡觉...
    王明_02aa阅读 211评论 0 0
  • 假如是晨曦朝露,活力无限,那就去奏一首青春的凯歌,不要畏首畏尾,不要浑浑噩噩,懦弱只会掩盖初阳和煦的光芒,弱冠之年...
    楚地小生阅读 288评论 0 4