美文网首页
代码执行结构 函数 存储过程

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

作者: 咸鱼有梦想呀 | 来源:发表于2017-10-25 21:23 被阅读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;

二、函数

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

  • 系统函数
    系统定义好的函数,直接调用即可。
    任何函数都有返回值,因此函数的调用是通过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)

验证

相关文章

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

    一、代码执行结构 顺序结果 分支结构 循环结构 1.分支结构 分支结构:实现多个代码块,按照条件选择性执行某段代码...

  • MySQL存储过程和存储函数

    一、存储过程 MySQL存储过程存储过程和存储函数参考文章 SQL语句需要先编译然后执行,而存储过程(Stored...

  • mysql存储过程

    存储过程和函数 /*存储过程和函数:类似于java中的方法好处:1、提高代码的重用性2、简化操作 */ 存储过程 ...

  • 流程控制-分支结构

    顺序结构: 由上而下的执行代码 分支结构:在由上而下的执行代码过程中,根据不同的条件执行不同的代码 常见分支结构:...

  • JDBC 调用函数或存储过程

    语法结构: 调用函数: { ?= call [( , ,...)]} 调用存储过程: { call [( , ...

  • (二十一)存储过程

    存储过程是一段可执行性代码的集合。相比函数,更偏向于业务逻辑。调用:CALL 过程名-- 注意 没有返回值。 只能...

  • web前端 -- Day10 js基础

    代码流程控制 代码的执行过程,分为三种方式:顺序结构、分支结构、循环结构 1、顺序结构 代码执行的顺序,从上到下,...

  • oracle之存储过程、函数、包

    参考链接 Oracle创建存储过程、创建函数、创建包——博客园@helong ORACLE执行存储过程权限不足—...

  • MySQL 存储过程与函数

    触发器,函数,存储过程 1 存储过程与函数的区别 本质上没区别,执行的本质都一样。 函数有且只能返回一个变量存储过...

  • ASP.net-执行SqlServer存储过程!(详解!)

    ASP.NET执行存储过程一. 执行一个没有参数的存储过程的代码如下:connectionString为连接字符串...

网友评论

      本文标题:代码执行结构 函数 存储过程

      本文链接:https://www.haomeiwen.com/subject/tomtpxtx.html