MySQL函数包括自定义函数

常用函数

1. 字符串函数

1.连接字符串
SELECT CONCAT('a','b','c')
-- abc

2.转换为大写
SELECT UPPER('abc')
-- ABC

3.转换为小写
SELECT LOWER('ABC')
-- abc

4.计算字符串长度(utf-8 一个汉字为3个字节,gbk为2个字节)
SELECT LENGH('abcde')
-- 5

5.返回左侧字符
SELECT LEFT('abcdefg',3)
-- abc

6.返回右侧字符串
SELECT RIGHT('abcdefg',3)
-- efg

7.去除空格(去除左侧空格LTRIM,去除右侧空格RTRIM)
SELECT TRIM(' str ')
-- str

8.对字符串进行左侧填充  LPAD(s,len,pad)使用pad对字符串s进行左填充,直至长度达到len
SELECT LPAD('1','5','0')
-- 00001

9.对字符串进行右侧填充
SELECT RPAD('1','5','0')
-- 10000

10.重复字符串指定次数
SELECT REPEAT('y',5)
-- yyyyy

11.将字符串中指定字符替换
SELECT REPLACE('straaa','a','b')
-- strbbb

12.比较两个字符串 strcmp(x,y)如果相同返回0,x小于y返回1,x大于y返回-1
SELECT STRCMP('a','a')		STRCMP('a','b')		STRCMP('b','a')
-- 0		-1		1

13.截取指定位置且指定位数的字符串
SELECT SUBSTRING('abcd',3,2)
-- cd

14.替换字符串 INSERT(s,x,y,str)字符串从x位置开始y个字符替换成str字符
SELECT INSERT('abcd',3,2,'LL')
-- abLL 

15.字符串颠倒顺序
SELECT REVERSE('abc')
-- cba

16.返回字符第一次出现的索引 (mysql是从1开始计算的)
SELECT INSTR('这是什么','是')
-- 2 

2. 数字函数

1.向上取整,返回大于该数字的最大整数
SELECT CEIL(10.1)
-- 11

2.向下取整,返回小于该数字的最大整数
SELECT FLOOR(10.1)
-- 10

3.返回01的随机数
SELECT RAND()
-- 0.132915854

4.保留指定位小数
SELECT TRUNCATE(15.1366666,2)
-- 15.13

5.四舍五入(负数计算方式,绝对值四舍五入)
SELECT ROUND(1.5)  ROUND(-1.5)
--2

6.取余
SELECT MOD(10,3)   MOD(10,-3)
-- 1 	1

7.返回符号(,,正返回结果依次为-1,01)
SELECT SIGN(-5)	  SIGN(0)	SIGN(-5)
-- -1  0  1

8.次方根
SELECT POW(3,3)		POW(-2,3)
-- 27		-8


3. 日期函数

1.返回当前系统日期+时间
SELECT NOW()
-- 2020-08-11 18:26:30

2.返回当前系统日期,不包含时间
SELECT CURDATE()
-- 2020-08-11

3.返回当前时间
SELECR CURTIME()
-- 18:26:30

4.获取指定的部分年、月、日(YEAR/MONTH/DAY)
SELECT YEAR(NOW())
-- 2020

5.将字符通过指定的格式转换为日期
SELECT STR_TO_DATE('08-11 2020','%c-%d %Y')
-- 2020-08-11

6.将日期转换为指定字符
SELECT DATE_FORMAT(NOW(),'%年%c月%d日')
-- 2020年08月11日

7.两个日期天数之差
SELECT DATEDIFF(NOW(),'2020-08-10')
-- 1

8.时间戳
SELECT UNIX_TIMESTAMP()
-- 1594005672

9.

4. 其他函数

1.查看mysql版本
SELECT  VERSION()
5.7.31

2.查看当前数据库
SELECT DATABASE()
test_base

3.查看当前用户
SELECT USER()
root@localhost

4.if函数
SELECT IF(10<5,'大','小')5.CASE 表达式
SELECT 
	CASE[字段,]
		WHEN 判断条件1
			THEN 希望得到的值1
		WHEN 判断条件2
			THEN 希望得到的值2
		ELSE 前面条件都没有满足情况下得到的值
	END
FROM
	table_name
---------------
SELECT t.id,t.tname
	CASE t.type
		WHEN 1 THEN '努力赚钱'
		WHEN 2 THEN '小康生活'
		WHEN 3 THEN '可以娶媳妇'
		WHEN 4 THEN '可以买车'
		WHEN 5 THEN '可以买房'
		ELSE '土豪'
	END AS '生活状态'
FROM TEST t
	

自定义函数

创建一个简单函数

 -- 如果有这个函数,就删除
drop function if exists hello;

-- 创建一个无参的函数
create function hello () 
 -- 设置函数的返回类型
returns varchar (255)
begin-- 函数头
    -- 中间的是函数体
    return '一个简单的mysql函数'; -- 函数的返回值
end; -- 函数结尾


——————————
drop function if exits hello;
-- a,b两个参数
create function hello(a varchar(20),b varchar(20)) returns varchar(255)
BEGIN
	--declare声明参数,default设置参数的默认值
	declare x varchar(255) default 'x';
	declare y varchar(255) default 'b';
	declare c varchar(255) default '2020-08-11';
	declare d varchar(255);
	--给参数赋值
	SET d=concat(x,a,b,y,c);
	return d;
END;

SELECT hello('a','b')
-- xabb2020-08-11


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值