小型手機(jī)網(wǎng)站建設(shè)推薦長(zhǎng)沙靠譜seo優(yōu)化
1、概述
在Mysql中,為了提高代碼重用性和隱藏實(shí)現(xiàn)細(xì)節(jié),Mysql提供了很多函數(shù)。函數(shù)可以理解為封裝好的模塊代碼。
2、分類
在Mysql中,函數(shù)非常多,主要可以分為以下幾類:
(1)聚合函數(shù)
(2)數(shù)學(xué)函數(shù)
(3)字符串函數(shù)
(4)日期函數(shù)
(5)控制流函數(shù)
(6)窗口函數(shù)(mysql8.0版本以上才有)
3、集合函數(shù)
(1)概述
在Mysql中,聚合函數(shù)主要有count、 sum? ? max? ?min? ? avg? ? 這里我們學(xué)習(xí)另外一個(gè)函數(shù):group_concat()? ?, 該函數(shù)用于實(shí)現(xiàn)行的合并。
group_concat()? ?函數(shù)首先根據(jù)group? by? ?指定的列進(jìn)行分組,并用分隔符將同一分組中的值連接起來,返回一個(gè)字符串結(jié)果。
(2)格式
group_concat([distinct ] 字段名? [order by? 排序字段? ?asc/desc]? ? [ separator? ?'分隔符']);
? ?說明:
1))使用distinct 可以排除重復(fù)值
2))如果需要對(duì)結(jié)果中的值進(jìn)行排序,可以使用order? by? 字句。
3))separator? 是一個(gè)字符串值,默認(rèn)為逗號(hào)。
(3)操作
數(shù)據(jù)準(zhǔn)備:
----將所有員工的名字合并成一行
------將所有員工的名字合并成一行,并指定分隔符合并
------指定分組方式和分隔符
--------指定排序方式和分隔符
4、數(shù)學(xué)函數(shù)
函數(shù)名? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?描述? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?實(shí)例
ABS(X)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?返回x的絕對(duì)值? ? ? ? ? ? ? ? ? ? ? ? ?返回-1的絕對(duì)值:select? ?ABS(-1);-------1
CEIL(X)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??返回大于等于X的最小整數(shù)? ? ? ? ? ? ? ? ? ?select? ?ceil (1.5);--------2
FLOOR(X)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?返回小于等于X的最大整數(shù)? ? ? ? ? ? ? ? ? ?小于等于1.5的最大整數(shù):? ?select? ? floor(1.5);-----1
GREATEST(expr1,expr2,....)? ? ? ? ? ? ? ? 返回列表中的最大值? ? ? ? ? ? ? ?返回以下數(shù)字中的最大值:select? ?greatesy(1,3,5);----5
LEAST(expr1,expr2,....)? ? ? ? ? ?返回列表中的最小值? ? ? ? ? ? ? ? ? ? ? ? ? ?返回以下數(shù)字中的最小值:select? ?greatesy(1,3,5);----1
MOD(X,Y)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 返回x除以y以后得余數(shù)? ? ? ? ? ? ? ? ? ? ? 5除以2的余數(shù)? select? mod(5,2);----1
PI()? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?返回圓周率(3.141593)? ? ? ? ? ? ? ? ?select? ? PI() ;----3.141593
POW(X,Y)? ? ? ? ? ? ? ? ? ? ? ? ? ? ?返回x的y次方? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2的3次方? ?select? pow(2,3);---8
RAND()? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?返回0到1的隨機(jī)數(shù)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? select? rand();---0.93099315644344
ROUND(x)? ? ? ? ? ? ? ? ? ? ? ? ? ? ?返回離x最近的整數(shù)(遵循四舍五入)? ? ? ? select? ?ROUND(1.23456);---1
ROUND(X,Y)? ? ? ? ? ? ? ? ?返回指定位數(shù)的小數(shù)(遵循四舍五入)? ? ? ? ?select? round(1.23456.3);---1.235
TRUNCATE(X,Y)? ? ? ? ? ? ? ? ? ? ?返 回?cái)?shù)值x保留到小數(shù)點(diǎn)y位的值(與round最大的區(qū)別是不會(huì)進(jìn)行四舍五入)??
代碼:
求絕對(duì)值:
求最小整數(shù):
求最大整數(shù):
求列表中的最大值:
求列表中最小值:
求余數(shù):
圓周率:
求次方:
Rand用法:
round用法:
round(x,y)用法:
truncate用法: