Mysql学习历程(19)-代码和函数

xiaoxiao2021-02-28  127

代码执行结构:顺序结构  分支结构  循环结构

分支结构:实现准备多个代码块,按照条件选择性执行某段代码;

在mysq中只有if分支

基本语法 if 条件判断   then

-- 满足条件执行的代码;

else 

-- 不满足条件执行代码;

end if;

delimiter %% create trigger before_order before insert on t_order for each row begin -- 判断商品库存是否够 -- 获取商品库存 select total from t_product where id=new.pid into @total; if @total<new.amount then -- 库存不足 触发器没有提供一个可以阻止事件发生的能力(暴力报错) insert into XXX values(xxxx); end if; end %% delimiter ;

循环结构:某段代码在指定条件执行重复执行;没有for循环

while循环语法

while 条件判断 do   --  满足条件要执行的代码

-- 变更循环条件

end while;

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

Mysql中没有continue和break  但是有替代品

iterate迭代 类似continue  后面代码不执行 循环重新来过

leave离开  类似break  整个循环结束

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

循环名字:while 条件  do

-- 循环体

-- 循环控制

leave/iterate 循环名字;

end while;

函数分为两类:系统函数和自定义函数

系统函数:系统定义好的函数,直接调用即可;

任何函数都有返回值,函数的调用是通过select 调用;

mysql中字符串的基本操作单位是字符

substring(字符串,起始位置,结束位置)

char_length();

length();返回字节长度

instr();判断字符串在某个具体字符串中存在,存在返回位置,不存在返回0

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

insert;替换  找到目标位置制定长度的字符串替换成目标字符串;

strcmp:字符串比较,不区分大小写,小于返回-1,等于返回0,大于返回1;

自定义函数

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

begin

-- 函数体

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

end

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

查看所有函数 show function status  [like 'pattern'];

函数属于数据库只有对应数据库才可以使用;

查看函数创建语句 show create function函数名;

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

drop function 函数名;

计算1-指定数之和

delimiter $$ create function display1(int_1 int) returns int begin set @i=1; set @res=0; while @i<=int_1 do set @res = @res+@i; set @i =@i+1; end while; return @res; end $$ delimiter ; 函数内部定义变量@res在函数外部也可以访问

作用域:mysql中作用域与js完全一样;全局变量可以在任何地方使用,局部变量只能在函数内部使用;

全局变量:使用set关键字定义,使用@符号标志;

局部变量:使用declare关键字声明,没有@符号;

所有局部变量必须声明在函数体开始之前,局部变量赋值也要使用set关键字;

转载请注明原文地址: https://www.6miu.com/read-65667.html

最新回复(0)