关于MySQL函数的那些事

一、sql中提供了哪些好用的函数

version()        # 用来查询当前数据库的版本

关于MySQL函数的那些事
user()            # 查询当前登录用户

关于MySQL函数的那些事
database()        # 查询当前所在的数据库

关于MySQL函数的那些事
uuid()            # 返回uuid的值,分布式情况下数据库主键不重复的解决方案

关于MySQL函数的那些事

二、聚合函数:
count(列名称)        # 统计行

关于MySQL函数的那些事
max(列名称)        # 最大值

关于MySQL函数的那些事
min(列名称)        # 最小值

关于MySQL函数的那些事
sum(列名称)        # 求和统计

关于MySQL函数的那些事
avg(列名称)        # 求平均数

关于MySQL函数的那些事

如果使用了聚合函数,建议和别名配合使用!!

三、数值型函数:
abs(num)        # 求绝对值

关于MySQL函数的那些事
sqrt(num)        # 开平方根

关于MySQL函数的那些事
pow(x, y)/power        # 幂次方

关于MySQL函数的那些事
mod(x, y)        # 求余

关于MySQL函数的那些事
ceil(num)/ceiling()    # 向上取整

关于MySQL函数的那些事
floor(num)        # 向下取整

关于MySQL函数的那些事
round(num)        # 四舍五入

关于MySQL函数的那些事
RAND()            # 随机数

关于MySQL函数的那些事
sign(num)        # 返回自然数的符号(正:1, 负:-1,0为0)

关于MySQL函数的那些事

四、字符串函数

length()            # 获取字符串存储长度,注意中文编码问题

关于MySQL函数的那些事
char_length()            # 字符长度

关于MySQL函数的那些事
concat(s1,s2...)        # 拼接字符串

关于MySQL函数的那些事
INSERT(str,pos,len,newstr)    # 替换字符串
lower()                # 转换为小写

关于MySQL函数的那些事
upper()                # 转大写

关于MySQL函数的那些事
left(s, len)            # 从左侧截取len长度的字符串

关于MySQL函数的那些事
right(s, len)            # 从右侧截取len长度的字符串

关于MySQL函数的那些事
trim()                # 清除字符串两侧空格

关于MySQL函数的那些事
replace(s,s1, s2)        # 替换字符串
substring(s, pos, len)        # 截取字符串

关于MySQL函数的那些事
reverse(str)            # 翻转字符串

关于MySQL函数的那些事
STRCMP(expr1,expr2)        # 比较两个表达式的顺序。若expr1 小于 expr2 ,则返回 -1,0相等,1则相反

关于MySQL函数的那些事

关于MySQL函数的那些事

关于MySQL函数的那些事
INSTR(str,s)            # 返回第一次出现子串的位置
locate(s, str [,pos])        # 返回第一次出现子串的位置,pos表示匹配位置

五、日期和时间函数     

insert into user VALUES(null, "王皮皮", "2000-06-13 09:26:33");
insert into user VALUES(null, "王皮皮", "2000/06/13 09:26:33");

insert into user VALUE(uuid(), "欧阳飞天", now());

SELECT CURDATE();
SELECT CURRENT_DATE();
SELECT CURRENT_DATE;

SELECT CURTIME();
SELECT CURRENT_TIME();
SELECT CURRENT_TIME;

SELECT NOW();
SELECT SYSDATE();

    # 获取给定时间的日期
SELECT DATE(now());
SELECT DATE('2002-03-26 01:01:13');

SELECT TIME(SYSDATE());
SELECT TIME('2002-03-26 01:01:13');

SELECT MONTH(now());
SELECT MONTHNAME(now());

    # 每月的第几天
SELECT DAY(now());
    -- 星期数
SELECT DAYNAME(now());
SELECT DAYOFWEEK(now()) # 0是星期天,以此类推
SELECT week(now());

SELECT year(now());
    # 查询一年中的那一天
SELECT DAYOFYEAR(now());

SELECT DATEDIFF('2020-10-10', "20200808");


SELECT SEC_TO_TIME(60804)
SELECT TIME_TO_SEC(now())