数据库MySQL学习_函数

MySQL函数

一、内置函数(常用)

1.1 字符串函数

函数名作用写法效果
char_length(s)
character_length(s)
返回字符串长度select char_length(‘helloworld’);10
concat(s1,s2,s3)合并s1,s2,s3select concat (‘hello’,‘world’);helloworld
locate(s1,s)s1在s中的首位置select locate(‘l’,‘helloworld’);3
lcase(s)
lower(s)
转小写select lower(‘HELLO’);hello
upper(s)转大写select upper(‘helloworld’)HELLOWORLD
trim(s)去前后空格select trim(’ aa a ');aa a
reverse(s)倒置select reverse(‘hello’);olleh

1.2 数字函数

函数名作用
max(v)最大数
min(v)最小数
sum(v)求和
avg(v)平均数
count(v)累计次数
pi()圆周率
pow(x,y)x的y次方
n/mn除以m的商
n div mn除以m的商取整数
n mod m取余
round(n)四舍五入
rand()0到1之间的随机数

1.3 日期函数

函数名作用写法效果
curdate()
current_date()
查日期select current_date();2021-03-30
curtime()
current_time()
查时间select curtime();09:12:57
current_timestamp()
localtime()
查日期+时间select current_timestamp();2021-03-30 09:14:12
year(d)取年时间select year(‘2021-03-30 09:14:59’);2021
month(d)去月时间select month(‘2021-03-30 09:14:59’);3
day(d)取天时间select day(‘2021-03-30 09:14:59’);30
adddate(d,n)在d的时间加上n天select adddate( ‘2021-03-30 09:14:59’,20);2021-04-19 09:14:59
addtime(d,n)在d的时间上加上n分钟select addtime( ‘2021-03-30 09:14:59’,20);2021-03-30 09:15:19

二、自定义函数

案例1:返回一个INT型数据

CREATE FUNCTION fn()
RETURNS INT
RETURN 10001;

SELECT fn();

在这里插入图片描述
案例2:返回一个字符串

CREATE FUNCTION fn2()
RETURNS VARCHAR(10)
RETURN 'helloworld';

SELECT fn2();

在这里插入图片描述
案例3:给定两个数,返回两数和

DELIMITER//
CREATE FUNCTION fn3(X INT ,Y INT)
RETURNS INT
BEGIN 
DECLARE SUM INT; 
SET SUM = X +Y;
RETURN SUM;
END//
DELIMITER;

SELECT fn3(1,2);

在这里插入图片描述

案例4:(WHILE 循环)给定一个数,返回1到该数之和

DELIMITER//
CREATE FUNCTION fn4(n INT )
RETURNS INT 
BEGIN
DECLARE a INT DEFAULT 0;
DECLARE i INT DEFAULT 1;
WHILE i<n DO
SET a=a+i;
SET i=i+1;
END WHILE;
RETURN a;
END//
DELIMITER;

SELECT fn4(10);

在这里插入图片描述
案例5:(IF ELSE)给定一个数,判断属于哪个范围

DELIMITER//
CREATE FUNCTION fn5(n INT )
RETURNS VARCHAR(10)
BEGIN 
DECLARE s VARCHAR(10);
IF n >10 THEN
SET s='你输入的数大于10';
ELSEIF n<10 THEN
SET s ='你输入的数小于10';
ELSE 
SET s ='你输入的数等于10';
END IF;
RETURN s;
END//
DELIMITER;

SELECT fn5(50);

在这里插入图片描述
案例6:(LOOP)输入一个数,返回1到该数之和

DELIMITER//
CREATE FUNCTION fn6(n INT )
RETURNS INT 
BEGIN 
DECLARE v INT DEFAULT 0;
DECLARE i INT DEFAULT 1;
a1:LOOP
SET v=v+i;
SET i=i+1;
IF i>=n THEN
LEAVE a1;
END IF;
END LOOP;
RETURN v;
END//
DELIMITER;

SELECT fn6(10);

在这里插入图片描述

案例7:(REPEAT 循环)输入一个数,返回1到该数阶乘

DELIMITER//
CREATE FUNCTION fn7(n INT )
RETURNS INT 
BEGIN 
DECLARE v INT DEFAULT 1;
DECLARE j INT DEFAULT 1;
REPEAT
SET v=v*j;
SET j=j+1;
UNTIL j>=n
END REPEAT;
RETURN v;
END//
DELIMITER;

SELECT fn7(10);

在这里插入图片描述

删除函数

drop function 函数名

查询数据库函数

SHOW FUNCTION STATUS;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值