mysql数据库函数、流程控制

mysql数据库学习笔记Day5

Day

1、函数

/*
含义:一组预先编译好的SQL语句的集合,可理解成批处理语句
	1、提高代码的重用性
	2、简化操作
	3、减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率
	
区别:
	存储过程:可以有0个返回,也可以有多个返回,适合做批量插入、批量更新
	函数:有且仅有一个返回,适合做处理数据后返回一个结果
*/

/*
一、创建语法
create function 函数名(参数列表) return 返回类型
begin
	函数体
end

注意:
	1、参数列表包含两部分:
		参数名、参数类型
	2、函数体:肯定会有return语句,如果没有会报错,如果return语句没有放在函数体的最后不会报错,但不建议return 值
	3、函数体中仅有一句话,则可以省略begin end
	4、使用 delimiter 语句设置结束标记

二、调用语法
select 函数名(参数列表)

三、查看函数
show create function 函数名;

四、删除函数
drop function 函数名;
*/

#返回公司的员工个数(无参返回)
create function myf1() returns int
begin
	declare c int default 0	#定义变量
	select count(*) into c	#赋值
	from employees;
	return c;
end $

#根据员工名返回他的工资(有参返回)
create function myf2(cmpName varchar(20)) return double
begin
	set @sal=0;
	select salary into @sal
	from employees
	where last_name = empName;
	return @sal;
end $

2、流程控制图

/*
顺序结构:程序从上往下依次执行
分支结构:程序从两条或多条路径中选择一条去执行
循环结构:程序在满足一定条件的基础上,重复执行一段代码
*/
一、分支结构
1、 if 函数
	语法:if(条件,值1,值2)
	特点:可以用在任何位置
2、 case 结构
	情况一:类似于switch
    case 表达式
    when 值1 then 结果1或语句1(如果是语句,需要加分号) 
    when 值2 then 结果2或语句2(如果是语句,需要加分号)
    ...
    else 结果n或语句n(如果是语句,需要加分号)
    end 【case】(如果是放在begin end中需要加上case,如果放在select后面不需要)

    情况二:类似于多重if
    case 
    when 条件1 then 结果1或语句1(如果是语句,需要加分号) 
    when 条件2 then 结果2或语句2(如果是语句,需要加分号)
    ...
    else 结果n或语句n(如果是语句,需要加分号)
    end 【case】(如果是放在begin end中需要加上case,如果放在select后面不需要)
3、 if 结构
    if 情况1 then 语句1;
    elseif 情况2 then 语句2;
    ...
    else 语句n;
    end if;
    
二、循环结构
语法:
	【标签:】WHILE 循环条件  DO
        循环体
    END WHILE 【标签】;
    
特点:
    只能放在BEGIN END里面
    如果要搭配leave跳转语句,需要使用标签,否则可以不用标签
    leave类似于java中的break语句,跳出所在循环!!!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

素履、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值