3 常见函数

常见函数

功能:将一组逻辑语句封装到方法体中,对外暴露方法名

好处:1.隐藏了实现细节 2.提高了代码的重用性

调用:select 函数名(实参列表) 【from 表】

特点: ①叫什么(函数名)

​ ②干什么(函数功能)

分类:

​ 1.单行函数

​ 如:concat、length、ifnull等

​ 2.分组函数

​ 功能:做统计使用,又称为统计函数

一、单行函数

字符函数

  1. length 获取参数值的字节个数
SELECT LENGTH('芜湖hhh');
  1. concat 拼接字符串
SELECT CONCAT(last_name,'_',first_name) FROM employees;
  1. upper、lower
SELECT UPPER('john');
SELECT LOWER('jOhN');
#案例:将姓变大写,名变小写,然后拼接
SELECT CONCAT(UPPER(last_name),LOWER(first_name)) FROM employees;	
  1. 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;
  1. instr 返回子串第一次出现的索引,如果找不到返回0
SELECT INSTR('杨不悔爱上了殷六侠','殷六侠') AS out_put;
  1. trim
SELECT TRIM('  	张翠山	');

SELECT TRIM('a' FROM'aaaaaaaa张aaaaa翠山aaaaaaa') AS out_put;
  1. lpad 用指定的字符实现左填充指定长度 超过了会从右边截断
SELECT LPAD('殷素素',10,'*');
  1. rpad
SELECT RPAD('殷素素',12,'ab') AS out_put;
  1. replace 替换
SELECT REPLACE('张无忌爱上了周芷若','周芷若','赵敏')

数字函数

  1. round 四舍五入
SELECT ROUND(4.5);
SELECT ROUND(1.567,2); //1.57
  1. ceil 向上取整 返回>= 该参数的最小整数
SELECT CEIL(1.002);//2
SELECT CEIL(-1.02);//-1
  1. floor 向下取整 返回>= 该参数的最大整数
SELECT FLOOR(9.99);//10
SELECT FLOOR(-9.99);//-9
  1. truncate 截断
SELECT TRUNCATE(1.69999,1);//1.6
  1. mod 取余

被除数正,余数正

被除数负,余数负

SELECT MOD(10,3);//1
SELECT MOD(-10,3);//-1

日期函数

  1. now 返回当前系统日期-时间
SELECT NOW();
  1. curdate 返回当前系统日期,不包含时间
SELECT CURDATE();
  1. curtime 返回当前系统时间,不包含日期
SELECT CURTIME();
  1. year 可以获取指定的部分,年、月、日、小时、分钟、秒
SELECT YEAR(NOW());
SELECT YEAR('1997-1-1');

SELECT YEAR(hiredate) FROM employees;

SELECT MONTH(NOW()) 月;
SELECT MONTHNAME(NOW()); 英文显示月份
  1. 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');
  1. 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 计算非空值的个数

  1. 简单的使用
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;
  1. 参数支持哪些类型

特点:

  1. sum、avg一般用于处理数值型

    max、min、count可以处理任何类型

  2. 以上分组函数都忽略null值

  3. 可以和distinct 搭配实现去重

 SELECT SUM(DISTINCT salary) FROM employees; 
 SELECT COUNT(DISTINCT salary) FROM employees;
  1. count 函数的详细介绍
 SELECT COUNT(salary) FROM employees;
 #统计行数
 SELECT COUNT(*) FROM employees; 
 SELECT COUNT(1) FROM employees;

效率:

MYISAM 存储引擎下,count(*) 的效率最高

INNODB 存储引擎下,COUNT(*) 和COUNT(1) 的效率差不多,比COUNT(字段)要高一些

  1. 和分组函数一同查询的字段要求是group by后的字段
posted @   flypiggg  阅读(84)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示