3 常见函数
常见函数
功能:将一组逻辑语句封装到方法体中,对外暴露方法名
好处:1.隐藏了实现细节 2.提高了代码的重用性
调用:select 函数名(实参列表) 【from 表】
特点: ①叫什么(函数名)
②干什么(函数功能)
分类:
1.单行函数
如:concat、length、ifnull等
2.分组函数
功能:做统计使用,又称为统计函数
一、单行函数
字符函数
- length 获取参数值的字节个数
SELECT LENGTH('芜湖hhh');
- concat 拼接字符串
SELECT CONCAT(last_name,'_',first_name) FROM employees;
- upper、lower
SELECT UPPER('john');
SELECT LOWER('jOhN');
#案例:将姓变大写,名变小写,然后拼接
SELECT CONCAT(UPPER(last_name),LOWER(first_name)) FROM employees;
- substr、substring
# 注意:索引从1开始
#截取从指定索引处后面所有字符
SELECT SUBSTR('李莫愁爱上了陆湛远',7) out_put;
#截取从指定索引处指定字符长度的字符
SELECT SUBSTR('李莫愁爱上了陆湛远',1,3) out_put;
#案例:姓名中首字符大写,其他字符小写,然后用_拼接
SELECT CONCAT(UPPER(SUBSTR(last_name,1,1)),'_',LOWER(SUBSTR(last_name,2))) out_put FROM employees;
- instr 返回子串第一次出现的索引,如果找不到返回0
SELECT INSTR('杨不悔爱上了殷六侠','殷六侠') AS out_put;
- trim
SELECT TRIM(' 张翠山 ');
SELECT TRIM('a' FROM'aaaaaaaa张aaaaa翠山aaaaaaa') AS out_put;
- lpad 用指定的字符实现左填充指定长度 超过了会从右边截断
SELECT LPAD('殷素素',10,'*');
- rpad
SELECT RPAD('殷素素',12,'ab') AS out_put;
- replace 替换
SELECT REPLACE('张无忌爱上了周芷若','周芷若','赵敏')
数字函数
- round 四舍五入
SELECT ROUND(4.5);
SELECT ROUND(1.567,2); //1.57
- ceil 向上取整 返回>= 该参数的最小整数
SELECT CEIL(1.002);//2
SELECT CEIL(-1.02);//-1
- floor 向下取整 返回>= 该参数的最大整数
SELECT FLOOR(9.99);//10
SELECT FLOOR(-9.99);//-9
- truncate 截断
SELECT TRUNCATE(1.69999,1);//1.6
- mod 取余
被除数正,余数正
被除数负,余数负
SELECT MOD(10,3);//1
SELECT MOD(-10,3);//-1
日期函数
- now 返回当前系统日期-时间
SELECT NOW();
- curdate 返回当前系统日期,不包含时间
SELECT CURDATE();
- curtime 返回当前系统时间,不包含日期
SELECT CURTIME();
- year 可以获取指定的部分,年、月、日、小时、分钟、秒
SELECT YEAR(NOW());
SELECT YEAR('1997-1-1');
SELECT YEAR(hiredate) FROM employees;
SELECT MONTH(NOW()) 月;
SELECT MONTHNAME(NOW()); 英文显示月份
- str_to_date 将日期格式的字符转换成指定格式的日期
SELECT STR_TO_DATE('1998-3-2','%Y-%c-%d');
#查询日期为1992-4-3的员工信息
SELECT * FROM employees WHERE hiredate = STR_TO_DATE('4-3 1992','%Y-%c-%d');
- date_format 将日期转换成字符
SELECT DATE_FORMAT(NOW(),'%Y年%m月%d日');
# 查询有奖金的员工名和入职日期(xx月/xx日 xx年)
SELECT last_name,DATE_FORMAT(hiredate,'%m月/%d日 %y年') FROM employees;
其他函数
SELECT VERSION();
SELECT DATABASES();
SELECT USER();
二、分组函数
用作统计使用,又称为聚合函数或组函数
分类:
sum 求和 、avg 平均值 、max 最大值、min 最小值、count 计算非空值的个数
- 简单的使用
SELECT SUM(salary) FROM employees;
SELECT AVG(salary) FROM employees;
SELECT MAX(salary) FROM employees;
SELECT MIN(salary) FROM employees;
SELECT COUNT(salary) FROM employees;
- 参数支持哪些类型
特点:
-
sum、avg一般用于处理数值型
max、min、count可以处理任何类型
-
以上分组函数都忽略null值
-
可以和distinct 搭配实现去重
SELECT SUM(DISTINCT salary) FROM employees;
SELECT COUNT(DISTINCT salary) FROM employees;
- count 函数的详细介绍
SELECT COUNT(salary) FROM employees;
#统计行数
SELECT COUNT(*) FROM employees;
SELECT COUNT(1) FROM employees;
效率:
MYISAM 存储引擎下,count(*) 的效率最高
INNODB 存储引擎下,COUNT(*) 和COUNT(1) 的效率差不多,比COUNT(字段)要高一些
- 和分组函数一同查询的字段要求是group by后的字段
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)