MySql中DQL常用单行函数介绍

DQL常用单行函数介绍

字符函数

length: 返回长度(使用的是utf-8编码,一个中文占用3个字节大小)

SELECT 
	LENGTH('JOHN') AS LENGTH;
SELECT 
	LENGTH('周') AS LENGTH;

PS:在utf-8中,中文占用的字节数是3个字节,但是在GBK编码中中文占用2个字节

concat:用于拼接字符串

select 
	concat('john','_','zhou')

在这里插入图片描述

Upper函数和Lower函数:转为大写或者小写

SELECT 
	UPPER('john')
SELECT 
	LOWER('JOHN')

SUBSTR(SUBSTRING):截取

# 截取从索引6开始,索引是1开始而不是0开始
SELECT 
	SUBSTR("我是最帅的我真帅",6) 
# 第三个参数表示的是截取的长度
SELECT 
	SUBSTR("我是最帅的我真帅",6,1)
# 下面代码的效果和第二个相同,上面的函数名是简写
SELECT 
	SUBSTRING("我是最帅的我真帅",6,1)

在这里插入图片描述
在这里插入图片描述
PS:mysql中的索引是从一开始的,而不是从0开始的。

INSTR函数:返回子串在大的字符串中起始索引,如果有多个返回第一个,如果没有返回0,PS:Mysql索引是从1开始的

SELECT 
	INSTR('我是最帅的我真帅','帅')
SELECT 
	INSTR('我是最帅的我真帅','你')	

在这里插入图片描述

在这里插入图片描述

TRIM函数:传入一个字符串,去掉两边的指定字符(如果没有指定,默认去掉空格)

SELECT TRIM('    我好帅    ')
SELECT TRIM('a' FROM 'aaaa我好帅aaaa')

在这里插入图片描述
在这里插入图片描述

LPAD(RPAD):左边(右边)填充指定的字符串到指定的长度,PS:如果指定传入的字符串长度比指定的长度小,则会发生截取,如果填充的字符串太长,也会发生截取,RPAD是右边填充

SELECT LPAD('帅',3,'我好')
# 下面代码和上面的代码效果相同,都是输出我好帅
SELECT LPAD('帅',3,'我好好好好好好')
# 下面的代码发生的截取截取源字符串的前三个
SELECT LPAD('我好好好好好好',3,'帅')

在这里插入图片描述

在这里插入图片描述

REPLACE函数:传入三个参数,第一个参数是原字符串,第二个参数是需要替换的字符串,第三个参数是需要替换为什么字符串

# 最后多出来一个*
SELECT REPLACE('你个*****','**','帅哥')

在这里插入图片描述

数学函数

ROUND函数:四舍五入

SELECT ROUND(1.1)

在这里插入图片描述

CEIL函数:向上取整

SELECT CEIL(1.1)

在这里插入图片描述

Floor函数: 向下取整

SELECT FLOOR(1.1)

在这里插入图片描述

TRUNCATE函数: 小数点后截断,第一个参数传递的是需要截断的数值,第二参数是截断的位数

SELECT TRUNCATE(1.65,1)

在这里插入图片描述

MOD函数: 取余,

SELECT MOD(10,3)	# 结果为1
SELECT MOD(-10,3)	# 结果为-1 
SELECT MOD(-10,-3)  # 结果为-1
SELECT MOD(10,-3)	# 结果为1

分析:对于10/3 来说整数部分为3,余数为1,-10/3整数的部分为-3,那么我们得到-9,那么还少-1,所以余数为-1,对于-10/-3,我们得到整数部分为3得到-9,还少-1,那么余数就是-1

日期函数

Now():返回当前的日期+时间

SELECT NOW()

在这里插入图片描述

CURDATE:返回当前的日期

SELECT CURDATE()

在这里插入图片描述

CURTIME:返回当前的时间

SELECT CURTIME()

在这里插入图片描述

获取年月日等

SELECT YEAR(NOW())
SELECT MONTH(NOW())
SELECT DAY(NOW())
SELECT HOUR(NOW())
SELECT MINUTE(NOW())
SELECT SECOND(NOW())

STR_TO_DATE函数:string转化为data(按照格式将string转化为date)

SELECT STR_TO_DATE('1998年3月2日','%Y年%c月%d日')
%Y四位年份
%y2位年份
%m月份(1月为01)
%c月份(1月为1)
%d
%H小时24小时制
%h小时12小时制
%i分钟
%s

DATE_FORMAT函数:将date格式化为字符串

SELECT DATE_FORMAT(NOW(),'%Y年%m月%d日')

在这里插入图片描述

流程控制函数

IF函数

SELECT IF(10>5,'我很帅','我真帅')

在这里插入图片描述

CASE函数

# 第一种用法
SELECT
CASE 10/2
WHEN 5 THEN 5	# 注意如果这边是表达式需要加;
WHEN 2 THEN 2	# 注意如果这边是表达式需要加;
ELSE 3
END AS res

在这里插入图片描述

# 第二种用法
SELECT 
CASE 
WHEN 10<5 THEN '10<5'
WHEN 10>15 THEN '10>15'
ELSE 'false'
END

在这里插入图片描述

PS:一般我们需要加别名

# 加了别名后的语句
SELECT 
CASE 
WHEN 10<5 THEN '10<5'
WHEN 10>15 THEN '10>15'
ELSE 'false'
END AS RES

在这里插入图片描述

其他函数

version:查看版本

SELECT VERSION()

在这里插入图片描述

DATABASE:查看当前的数据库

SELECT DATABASE()

在这里插入图片描述
在这里插入图片描述

USER: 查看当前用户

SELECT USER()

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值