【mysql】函数

合计统计函数

count(列名)–总数

  • 返回行的总数

  • count(*)返回满足条件的记录的行数

  • count(列)统计满足条件的某列有多少个,但是会排除null的情况

select count(*) from emp;

sum(列名)–总和

  • 返回满足where条件的行的总和,一般用于数值列
select sum(math),sum(chinese) from student;

avg(列名)–平均值

  • 返回满足where条件的一列的平均值
select avg(math+chinese+english) from student;

max/min(列名)–最大/最小值

  • 返回满足where条件一列的最大**/**最小值
select max(math),min(chinese) from student;

字符串函数

在这里插入图片描述

CHARSET(str) 返回字串字符集

select charset(ename) from emp; -- utf8

CONCAT (string2 [,… ]) 连接字串, 将多个列拼接成一列

select concat(ename,'工作是:',job) from emp;

INSTR (string ,substring ) 返回 substring 在 string 中出现的位置,没有返回 0

select instr('hello word','ll') from dual; -- 3

UCASE (string2 ) 转换成大写

select ucase('abc') from dual;

LCASE (string2 ) 转换成小写

select lcase('ABC') from dual;

LEFT (string2 ,length )从 string2 中的左边起取 length 个字符

select left('abcd',2) from dual; -- ab

RIGHT (string2 ,length ) 从 string2 中的右边起取 length 个字符

select right('abcd',2) from dual; -- cd

LENGTH (string ) string 长度[按照字节]

select length('abcd') from dual; -- 4

select length('你好') from dual; -- 6,当前是utf8编码,一个汉字占三个字节

REPLACE (str ,search_str ,replace_str )

select replace('abcd','bc','BC') from dual; -- aBCd

select replace('abcd','xy','XY') from dual; -- abcd,找不到该字符串,无法替换

STRCMP (string1 ,string2 ) 逐字符比较两字串大小

select strcmp('ab','ab') from dual; -- 0,如果两个字符串相同返回0,如果s1<s2,返回-1,如果s1>s2,返回1

SUBSTRING (str , position [,length ]),截取子串,position从1开始计算,length不写,则取后面全部

select substring('abcd',1,2) from dual; -- ab

select substring('abcd',1) from dual; -- abcd

LTRIM (string2 ) RTRIM (string2 ) TRIM(string) – 去除前端空格或后端空格

select ltrim(' abcd') from dual; -- abcd

select rtrim(' abcd ') from dual;

select trim(' abcd ') from dual; -- 去除两端空格

数学函数

在这里插入图片描述

ABS(num) 绝对值

select abs(-5) from dual; -- 5

BIN (decimal_number )十进制转二进制

select bin(8.5) from dual; -- 1000

CEILING (number2 ) 向上取整, 得到比 num2 大的最小整数

select ceiling(2.1) from dual; -- 3

CONV(number2,from_base,to_base) 进制转换

-- 下面的含义是 8 是十进制的 8, 转成 2 进制输出

select conv(8,10,2) from dual; -- 1000

-- 01000,二进制,转成10进制

select conv(01000,2,10) from dual; -- 8

FLOOR (number2 ) 向下取整,得到比 num2 小的最大整数

select floor(2.9) from dual; -- 2

FORMAT (number,decimal_places ) 保留小数位数(四舍五入)

select format(3.14159,4) from dual; -- 3.1416

HEX (DecimalNumber ) 转十六进制

select hex(15) from dual; -- F

select hex(16) from dual; -- 10

LEAST (number , number2 [,…]) 求最小值

select least(3,4,6,2,19) from dual; -- 2

MOD (numerator ,denominator ) 求余

select mod(10,3) from dual; -- 1

RAND([seed]) RAND([seed]) 返回随机数 其范围为 0 ≤ v ≤ 1.0

-- rand()每次都返回不同的随机数

-- rand(seed)如果随机种子不变,该随机数也不变

select rand(10) from dual;

时间日期函数

在这里插入图片描述

current_date(),当前日期

select current_date() from dual; -- 2021-09-02

current_time(),当前时间

select current_time() from dual; -- 22:35:22

current_timestamp(),当前时间戳

select current_timestamp() from dual; -- 2021-09-02 22:35:22

date(datetime),获取datetime中的日期

select date('2021-09-02 22:35:22') from dual; -- 2021-09-02

date_add(date,interval) ,在date中加上日期或时间

select date_add('2021-09-02 22:35:22',interval 10 minute) from dual; -- 2021-09-02 22:45:22

date_sub(date,interval),在date中减去日期或时间

select date_sub('2021-09-02 22:45:22',interval 20 minute) from dual; -- 2021-09-02 22:25:22

datediff 相差的日期

select datediff(now(),'1994-05-09') from dual;

select datediff( date_add('1986-11-11',interval 80 year),now()) from dual;

timediff 相差的时间

select timediff('20:00:00','18:00:00') from dual; -- 02:00:00

select year(now()),month(now()),day(now()) from dual;

FROM_UNIXTIME() : 可以把一个 unix_timestamp 秒数[时间戳],转成指定格式的日期

  • %Y-%m-%d 格式是规定好的,表示年月日
  • 意义:在开发中,可以存放一个整数,然后表示时间,通过 FROM_UNIXTIME 转换
select from_unixtime(1618483484,'%Y-%m-%d') from dual; -- 2021-04-15

系统和加密函数

在这里插入图片描述

USER() 查询用户

select user() from dual; -- root@localhost

DATABASE()查询当前使用数据库名称

select database(); -- db01

MD5(str) 为字符串算出一个 MD5 32 的字符串,常用(用户密码)加密

select md5('你好') from dual; -- 7eca689f0d3389d9dea66ae112e5cfd7

PASSWORD(str) – 加密函数, MySQL 数据库的用户密码就是 PASSWORD 函数加密

select password('你好') from dual; -- *CF5BE1F39115E469E455BEC512DE978231206A6C

流程控制函数

在这里插入图片描述

IF(expr1,expr2,expr3)

select if(true,'a','b') from dual; -- a

IFNULL(expr1,expr2)

select ifnull('abc','def') from dual; -- abc

select ifnull(null,'abc') from dual; -- abc

SELECT CASE WHEN expr1 THEN expr2 WHEN expr3 THEN expr4 ELSE expr5 END; [类似多重分支.]

  • 如果 expr1 为 TRUE,则返回 expr2,如果 expr2 为 t, 返回 expr4, 否则返回 expr5
select case when false then '张三' when false then '李四' else '王五' end; -- 王五
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL函数是一种可以被调用并执行特定任务的功能性代码块。MySQL提供了许多内置函数,可以在查询过程中使用,以提供更高级的功能。 MySQL函数可以分为以下几类: 1. 字符串函数MySQL提供了许多字符串函数,可以用来处理和操作字符串数据。例如,CONCAT()函数用于连接多个字符串,SUBSTR()函数用于提取子字符串,UPPER()函数用于将字符串转换为大写,LOWER()函数用于将字符串转换为小写,等等。 2. 数学函数MySQL提供了丰富的数学函数,可以进行各种数值计算。常见的数学函数包括ABS()函数用于返回绝对值,ROUND()函数用于四舍五入,CEILING()函数用于向上取整,FLOOR()函数用于向下取整等。 3. 日期和时间函数MySQL提供了许多日期和时间函数,用于在数据库中处理日期和时间数据。例如,NOW()函数用于返回当前日期和时间,DATE()函数用于提取日期部分,MONTH()函数用于提取月份,YEAR()函数用于提取年份等。 4. 聚合函数MySQL提供了一些聚合函数,用于对数据进行汇总计算。常见的聚合函数包括SUM()函数用于求和,AVG()函数用于求平均值,MAX()函数用于获取最大值,MIN()函数用于获取最小值,等等。 5. 控制流函数MySQL还提供了一些控制流函数,用于在查询过程中进行条件判断和控制流程。常见的控制流函数包括IF()函数用于条件判断,CASE WHEN语句用于多条件判断,等等。 通过使用这些不同类型的MySQL函数,可以方便地对数据库中的数据进行处理和计算,提高查询的效率和灵活性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值