Mysql数据库核心技术(十六)-查询数据(五)-常用的内置函数
第一组:聚合函数max()
min()
sum()
avg()
count()
举例说明:
select max(age) 年龄最大的,min(age) 年龄最小的,sum(age) 总年龄,avg(age) 平均年龄,count(*) 总人数 from user;执行结果如下:
第二组:取随机数函数
rand()举例说明:
select rand();--输出结果为0.8853623260607592
select * from stu3 order by rand();--随机排序
select * from stu3 order by rand() limit 1; --随机取一条第三组:数值类操作函数
round()
truncate()
ceil()
floor()
举例说明:
select round(3.1415926,3) '四舍五入',truncate(3.1415926,3) '截取数据',ceil(3.1) '向上取整',floor(3.9) '向下取整';执行结果如下:
第四组:文本类操作函数
ucase()--到大写
lcase()--到小写
left(str,num)--取左边
right(str,num)--取右边
substring(str,num,num)--取中间
concat(str1,str2,str3)--连接
length()--取长度
举个栗子:
select length(name) from user where id=1;语句解释:
查询user表中id为1的name字段的长度。执行结果如下:
coalesce(str1,str2)--str1有值显示str1,为null显示str2。
举个栗子:
select name,coalesce(age,'未登记') from user;
语句解释:
在stu3表查询name和age字段,如果age为null则显示未登记。执行结果如下:
第五组:时间类操作函数
unix_timestamp() --取当前时间戳,结果为1670837151
from_unixtime(unix_timestamp());--将时间戳格式化为文本时间,结果为:2022-12-12 17:26:44
举个栗子:
select `name`,from_unixtime(createtime) from user;执行结果如下:
now() 取当前时间,结果格式为:2023-01-11 17:08:50
year(now()) 年
month(now()) 月
day(now()) 日
hour(now()) 小时
minute(now()) 分钟
second(now())秒
dayname(now()) 星期
dayofyear(now()) 本年第几天
datediff(now(),'2010-08-08') 相距天数;//4509
举个栗子:
select year(now()) 年,month(now()) 月,day(now()) 日,hour(now()) 小时,minute(now()) 分钟,second(now())秒;
select datediff(now(),'2010-08-08');
执行结果如下:
第六组:加密类操作函数
select md5('aa'); 4124bc0a9335c27f086f24ba207a4912
select sha('aa');e0c9035898dd52fc65c41454cec9c4d2611bfb37
举个栗子:
select sha(name) from user;执行结果如下:
ok,以上就是mysql常用的内置函数,大家务必自己练习一下,我们下一篇继续。
难得看到这么好的教程。 学会了,消化中。。。 这么好的教程希望更多人看到 讲的都是最常用的sql语句,非常好 感谢楼主,又涨知识了。 学mysql看过很多教程,全都讲不全,这次下定决心学会它 自从知道慈众后,学习的激情一发不可收拾 全网最好的mysql入门图文教程,没有之一。 教程由浅入深,稳扎稳打,非常棒~