我是靠谱客的博主 漂亮龙猫,最近开发中收集的这篇文章主要介绍MYSQL常用函数 读书笔记字符串函数数值函数日期和时间函数流程函数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在这里插入图片描述
此书的学习笔记

字符串函数

函数功能用例
查询字符串信息
length(string)string的字节个数LENGTH(‘adc哈’) -> 6
char_length(string)string的字符个数char_length(‘abc哈’) -> 4
charset(str)返回字串字符集charset(‘qwe’) -> utf8
拼接类型
CONCAT(S1,S2,…Sn)把传入的参数连接成为一个字符串
任何字符串与NULL进行连接的结果都将是NULL
concat(‘aaa’, ‘bbb’, ‘ccc’) ->aaabbbccc
concat(‘aaa’,null) -> Null
LPAD(str,n,pad) 和 RPAD(str,n,pad)用字符串pad对str最左边和最右边进行填充,直到长度为n个字符长度。lpad(‘2008’,20,‘beijing’) -> beijingbeijingbe2008
rpad(‘beijing’,20,‘2008’) -> beijing2008200820082
REPEAT(str,x)返回str重复x次的结果repeat('mysql ',3) -> mysql mysql mysql
截取类型
substring(str, position [,length])从str的position开始,取length个字符
下标从1开始
substring(‘beijing2008’,8,4) -> 2008
substring(‘beijing2008’,1,7) -> beijing
substring(‘beijing2008’,3) -> ijing2008
LEFT(str,x) 和 RIGHT(str,x)分别返回字符串最左边的x个字符和最右边的x个字符。
如果第二个参数是NULL,那么将不返回任何字符串。
下标从1开始
LEFT(‘beijing2008’,7) -> beijing
LEFT(‘beijing’,null) -> Null
RIGHT(‘beijing2008’,4) -> 2008
替换类型
replace(str ,search_str ,replace_str)在 str 中用 replace_str 替换 search_strreplace(‘beijing_2010’,’_2010’,‘2008’) -> beijing2008
INSERT(str,x,y,instr)将字符串str从第x位置开始,y个字符长的子串替换为字符串instr
下标从1开始
INSERT(‘beijing2008you’,12,3, ‘me’)
-> beijing2008me
instr(string ,substring)返回substring首次在string中出现的位置instr(‘qwer’ ,‘e’) -> 3
locate(substring, string [,start_position])同instr,但可指定开始位置locate(‘qw’, ‘qwertqw’ ,3) -> 6
去空格
LTRIM(str) 和 RTRIM(str)去掉字符串str左侧和右侧空格ltrim(’ beijing’) -> beijing
rtrim('beijing ') -> beijing
TRIM(str)去掉目标字符串的开头和结尾的空格trim(’ $ beijing2008 $ ') -> $ beijing2008 $
STRCMP(s1,s2)比较字符串s1和s2的ASCII码值的大小。
S1<S2 -1
S1=S2 0
S1>S2 1
strcmp(‘a’,‘b’) -> -1
strcmp(‘b’,‘b’) -> 0
strcmp(‘c’,‘b’) -> 1
LOWER(str) 和 UPPER(str)把字符串转换成小写或大写LOWER(‘BEIJING2008’) -> beijing2008
UPPER(‘beijing2008’) -> BEIJING2008
load_file(file_name)从文件读取内容

在这里插入图片描述

数值函数

函数功能用例
pi()获得圆周率pi() -> 3.141593
pow(m, n)m^npow(3, 2) = 9
sqrt(x)算术平方根sqrt(9) = 3
format(x, d)格式化千分位数值format(1234567.456, 2) = 1,234,567.46
abs(x)返回x的绝对值abs(-0.8) =0.8
abs(0.8) =0.8
CEIL(x)返回大于x的最小整数CEIL(-0.8) =0
CEIL(0.8) =1
FLOOR(x)返回小于x的最大整数,和CEIL的用法刚好相反。FLOOR(-0.8) =-1
FLOOR(0.8) =0
round(x,y)返回参数x的四舍五入的有y位小数的值。
如果是整数,将会保留y位数量的0;
如果不写y,则默认y为0,即将x四舍五入后取整。
ROUND(1.234,2) =1.23
ROUND(1.235,2) =1.24
ROUND(1,3) = 1
ROUND(1.4) = 1
ROUND(1.5) = 2
ROUND(1.1,2) =1.1
TRUNCATE(x,y)返回数字x截断为y位小数的结果
注意TRUNCATE和ROUND的区别在于TRUNCATE仅仅是截断,而不进行四舍五入
TRUNCATE(1.234,2) =1.23
TRUNCATE(1.235,2) =1.23
MOD(x,y)
x%y的结果相同
返回x/y的模。
模数和被模数任何一个为NULL结果都为NULL
MOD(15,10) =5
MOD(1,11) =1
MOD(NULL,10) =Null
RAND()返回0~1内的随机值
利用此函数可以取任意指定范围内的随机数
RAND() =0.8762537929008285
RAND() =0.32581121132318974
ceil(100 * rand()) =1
ceil(100 * rand()) =3

在这里插入图片描述

日期和时间函数

函数功能用例
NOW() / CURRENT_TIMESTAMP()返回当前的日期和时间,年月日时分秒全都包含NOW() -> 2021-11-07 21:54:54
CURDATE() / CURRENT_DATE() / date(now())返回当前日期,只包含年月日CURDATE() -> 2021-11-07
CURRENT_DATE () -> 2021-11-07
date(now()) -> 2021-11-07
CURTIME() / CURRENT_TIME() / time(now())返回当前时间,只包含时分秒CURTIME() ->21:54:54
CURRENT_TIME () -> 21:54:54
time(now()) -> 21:54:54
YEAR(DATE)返回所给的日期是哪一年YEAR(now()) -> 2021
MONTHNAME(date)返回date的英文月份名称MONTHNAME(now()) -> November
WEEK(DATE)返回所给的日期是一年中的第几周WEEK(now()) -> 45
HOUR(time)返回所给时间的小时HOUR(CURTIME()) ->23
MINUTE(time)返回所给时间的分钟MINUTE(CURTIME()) ->34
UNIX_TIMESTAMP(date)返回日期date的UNIX时间戳UNIX_TIMESTAMP(now()) ->1636293419
FROM_UNIXTIME(unixtime)返回 UNIXTIME 时间戳的日期值,
和 UNIX_TIMESTAMP(date)互为逆操作
FROM_UNIXTIME(1636293419) ->2021-11-07 21:56:59
DATE_FORMAT(date,fmt)按字符串 fmt 格式化日期 date 值
格式参考图1
DATE_FORMAT(now(),’%M,%D,%Y’) -> November,7th,2021
DATEDIFF(date1,date2)用来计算两个日期之间相差的天数DATEDIFF(‘2022-08-08’,now()) -> 274
DATE_ADD(date,INTERVAL expr type)返回与所给日期date相差 INTERVAL时间段的日期
格式参考图2
now() -> 2021-11-07 23:39:00
date_add(now(), INTERVAL 31 DAY) ->2021-12-08 23:39:00
date_add(now(),INTERVAL ‘1_2’ year_month) ->2023-01-07 23:39:00
date_add(now(), INTERVAL -31 DAY) ->2021-10-07 23:39:00
date_add(now(),INTERVAL ‘-1_-2’ year_month) ->2020-09-07 23:39:00

图1:

在这里插入图片描述

图2:

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

流程函数

函数功能用例
create table salary (userid int,salary decimal(9,2));

insert into salary values(1,1000),(2,2000), (3,3000),(4,4000),(5,5000), (1,null);
1000.00
2000.00
3000.00
4000.00
5000.00
NULL
IF(value,t,f)select if(salary>2000, ‘high’, ‘low’) from salarylow
low
high
high
high
low
IFNULL(value1,value2)这个函数一般用来替换 NULL 值,我们知道 NULL 值是不能参与数值运算的
select ifnull(salary,0) from salary;
1000.00
2000.00
3000.00
4000.00
5000.00
0.00
case when [condition] then result [when [condition] then result …] [else result] endselect case when salary<=2000 then ‘low’ else ‘high’ end from salarylow
low
high
high
high
high
CASE [expr] WHEN [value1] THEN[result1]…ELSE[default]ENDselect case salary when 1000 then ‘low’ when 2000 then ‘mid’ else ‘high’ end from salary;low
mid
high
high
high
high

最后

以上就是漂亮龙猫为你收集整理的MYSQL常用函数 读书笔记字符串函数数值函数日期和时间函数流程函数的全部内容,希望文章能够帮你解决MYSQL常用函数 读书笔记字符串函数数值函数日期和时间函数流程函数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(92)

评论列表共有 0 条评论

立即
投稿
返回
顶部