mysql存储函数笔记

MYSQL 编程:
元素:
数据
数据类型
变量
    字段名
    系统变量 show variables
    自定义变量:
        set @var_name = value;  
            set @a = 10;        赋值语句
            set @a := 10;        赋值语句
            select @a := 10;    赋值语句
            select @a = 20;     关系判断,返回布尔值
        select into        
            select 10,15,20 into @a,@b,@c
            select c_name from class where id = 1 into @cname;
        有效期: 会话结束
        作用域: 全局的

控制流程: 循环/判断
if 条件1 then
    语句
elseif 条件2 then
    语句
else
    语句
end if;

while 条件 do
循环体
end while

leave    --终止循环
iterate    --终止当前这次循环

注释   
    行注释:-- 或者  #
    块注释: /**/
        
函数    
    内置函数
    自定义函数
        函数名
        参数列表
        函数体
        返回值

	/*函数,hello world*/
	delimiter //
	create function sayHello() returns varchar(20)
	begin
	return 'hello world!';
	end //
	delimiter ;
	/*条件判断*/
	drop function score;
	delimiter //
	create function score(a int) returns varchar(20)
	begin
	if a > 60 then
		return '及格';
	else
		return '不及格';
	end if;
	end
	//
	delimiter ;
	/*条件判断*/
	drop function greeting;
	delimiter //
	create function greeting() returns varchar(20)
	begin
	if hour(now()) =< 9 then
		return 'good morning, sir';
	elseif hour(now()) >= 11 then
		return '上午好';
	elseif hour(now()) >= 13 then 
		return '中午好';
	elseif hour(now()) >= 17	then
		return '下午好';
	else
		return '晚上好';
	end if ;
	end
	//
	delimiter ;
	
	
	/*循环语句*/
	drop function if exists fun_sum;
	delimiter //
	create function fun_sum() returns int
	begin
		set @i = 0;
		set @sum = 0;
		while @i <= 10 do
			set @sum = @sum + @i;
			set @i = @i + 1;
		end while;
		return @sum;
	end
	//
	delimiter ;

	/*while循环: iterate */
	drop function if exists fun_sum3;
	delimiter //
	create function fun_sum3() returns int
	begin
	set @i = 0;
	set @sum = 0;
	w:while @i < 10 do
	set @i = @i + 1;
	if @i = 5 then
		iterate w;
	end if;
	set @sum = @sum + @i;
	end while w;
	return @sum;
	end	//
	delimiter ;
	
	/*while循环: leave */
	drop function if exists fun_sum5;
	delimiter //
	create function fun_sum5() returns int
	begin
	--申明局部变量
	declare i int default 0;
	declare total int default 0;
	w:while i < 10 do
	set i = i + 1;
	if i = 5 then
		leave w;
	end if;
	set total = total + i;
	end while w;
	return total;
	end	//
	delimiter ;
	
	/*函数--传参*/
	drop function if exists  sayHello_you;
	delimiter //
	create function sayHello_you(say_name varchar(20)) returns varchar(20)
	begin
	return concat('hello world!',say_name);
	end //
	delimiter ;

	/*求n的阶乘*/
	drop function if exists factorial;
	delimiter //
	create function factorial(a int) returns int
	begin
	declare sum int default 1;
	declare i int default 1;
	while i <= a do
	set sum = sum * i;
	set i = i + 1;
	end while;
	return sum;
	end	//
	delimiter ;
	
	
	/*随机取名*/
	drop function if exists c_name;
	delimiter //
	create function c_name() returns char(2)
	begin
	declare f_name char(16) default '赵钱孙李周五郑王冯陈褚卫蒋沈韩杨';
	declare l_name varchar(22) default '甲乙丙丁戊己庚辛壬癸子丑寅卯辰巳午未申酉戌亥';
	declare full_name varchar(2) ;
	set full_name = concat(substring(f_name,floor(rand()*8+1),1),
	substring(l_name,floor(rand()*11+1),1));
	return full_name;
	end //
	delimiter ;
	

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值