一组预先编译好的SQL语句的集合,可以完成批处理。
1. 提高代码的重用性;
2. 简化操作;
3. 减少编译次数并且减少了和数据库服务器的连接次数,提高的效率;
1.语法
create function 函数名(参数列表)returns 返回类型
begin
函数体
end
2.注意
1.参数列表包含参数名
和参数类型
,例如 myname int;
2.函数体:必须有return ,格式:return 返回值;
3.设置delimiter语句设置结束标记;
3.调用
select 函数名(参数列表);
示例一
use stus;
---------------------------------------------------------------
drop procedure if exists p1;
set global log_bin_trust_function_creators=TRUE;
#创建函数f():无参有返回
delimiter $
create function f() returns int
begin
declare res int default 0;
select count(*) into res
from booktype;
return res;
end $
#调用函数f()
select f() $
示例二
use stus;
---------------------------------------------------------------
delimiter $
drop function if exists sal ;
#创建函数sal():有参有返回
create function sal(n varchar(25)) returns int
begin
set @res=0;
select id into @res
from booktype
where name = n;
return @res;
end $
#调用函数sal()
select sal('fiction')$
show create function 函数名;
drop function 函数名;
1.创建函数,实现传入两个一维float数,返回二者的距离。
delimiter $
drop function if exists f;
create function f(num1 float ,num2 float ) returns float
begin
declare res float default 0.0;
select if(num1-num2>0,num1-num2,num2-num1) into res;
return res;
end $
select f(12.3,56.2) as 'ans';
1.创建函数,实现传入两个二维float坐标,返回二者的距离。
delimiter $
drop function if exists f1;
create function f1(x1 float ,y1 float ,x2 float ,y2 float ) returns float
begin
declare res float default 0.0;
set @a1 = pow(x1-x2,2);
set @a2 = pow(y1-y2,2);
select pow(@a1+@a2,0.5) into res;
return res;
end $
select f1(1,1,2,2) as 'ans';
MySQL复习day01:数据库简介和 DQL数据查询语言
MySQL复习day02:DQL数据查询语言续
MySQL复习day03:DQL数据查询语言完结
MySQL复习day04:DML数据操作语言和DDL数据定义语言
MySQL复习day05:TCL事务控制语言和视图
MySQL复习day06:变量,存储过程
MySQL复习day07:函数
MySQL复习day08:流程控制结构
MySQL复习day09:逻辑架构和引擎,索引详解(explain)
感谢诸君观看,如果感觉有用的话,点个赞吧!