mysql常用函数文档_MySQL(5)— 常用函数

五、MySQL常用函数

5-1、基本函数

数学运算:

-- 数学运算

SELECT ABS(-8) AS '绝对值'-- 取绝对值

SELECT CEILING (3.14) AS '向上取整' -- 向上取整

SELECT FLOOR (3.14) AS '向下取整' -- 向下取整

SELECT RAND() -- 返回 [0,1) 随机数

SELECT SIGN(0) -- 判断一个数的符号 0 => 0 , 负数 => -1 , 正数=> 1

字符串:

SELECT CHAR_LENGTH('hello') -- 字符串长度

SELECT CONCAT('hello','world') -- 字符串 拼接

SELECT LOWER('HELLO') -- 转小写

SELECT UPPER('hello') -- 转大写

SELECT INSTR('l') -- 返回第一次出现子串 l 的索引

SELECT REPLACE('l','a') -- 把子串 l 替换为 a

SELECT substr('helloWorld',5,2) -- 截取字符串(源字符串,起始位置,截取长度):WO

SELECT reverse('helloWorld') -- 反转字符串

时间和日期:( 记住 )

SELECT NOW() -- 返回当前的时间,日期+时分秒(记个最简单的就行)

SELECT LOCALTIME() -- 返回本地的时间,日期+时分秒

SELECT SYSDATE()-- 返回系统的时间,日期+时分秒

SELECT CURDATE() -- 返回当前的日期

SELECT CURRENT_DATE() -- 返回当前的日期

系统:( 记住 )

SELECT USER() -- 返回当前用户

SELECT SYSTEM_USER() -- 返回当前用户

SELECT VERSION() -- 返回当前版本号

5-2、聚合函数(常用)

函数名称

描述

count()

计数

avg()

平均值

sum()

求和

max()

最大

min()

最小

相似的 count(*) 和 count(1)比较:

count(1):其实就是计算一共有多少符合条件的行。1并不是表示第一个字段,而是表示一个固定值。其实就可以想成表中有这么一个字段,这个字段就是固定值1,count(1),就是计算一共有多少个1.

count(*):执行时会把星号翻译成字段的具体名字,效果也是一样的,不过多了一个翻译的动作,比固定值的方式效率稍微低一些。

总结:count(*),count(1) 和 count(列名)

如果表中存在主键,count(主键列名)效率最优

如果表中只有一列,则count(*)效率最优

如果表有多列,且不存在主键,则count(1)效率优于count(*)

网上的实验结论:

该Table数据量:33681874(千万级)

根据执行计划,都是走PK查询,所有时间基本相差不大,如下:

Count(1):00:00:05.13;

count(*):00:00:05.29;

Count(主键):00:00:05.07;

Count(Index):00:00:05.10;

Count(普通列):00:00:05.29;

所以对于有主键非null的Table来说,执行效率:

Count(主键) > Count(Index) > Count(1) > Count(*) = Count(普通列)

网友:

现在cout(1)和count(*) 系统会自动做优化走索引还是全表,三者性能差别不大。

5-3、MD5 加密函数

-- MD5 明文加密

SELECT MD5(123456)

如何校验?

把传入的值,加密,再和表中已经加过密的值判断。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值