当前位置:网站首页>MySQL常见函数
MySQL常见函数
2022-08-02 16:36:00 【web18334137065】
一、单行函数
1.1 字符函数
- length(str):统计字符串的字节数(取决于编码方式,utf8汉字3字节,gbk汉字2字节)
- concat(str1, str2):拼接字符
- substr/substring(str, n1 [,n2]):切割字符,n1起始位置(mysql下标从1开始),n2可选,表示切割长度
- instr(str1, str2):返回str2在str1中首次出现的位置;如果没有找到,则返回0。不区分大小写。
- trim(str [, substr]):取出字符串前后的substr字符串,默认为空格
- upper(str):字母变大写
- lower(str):字母变小写
- lpad(str1,length,str2)。其中str1是第一个字符串,length是结果字符串的长度,str2是一个填充字符串。如果str1的长度没有length那么长,则使用str2填充;如果str1的长度大于length,则截断。
- rpad(str1, length, str2):参考lpad
- replace(object,search,replace):把object对象中出现的的search全部替换成replace。
1.2 数学函数
- round(num, 2):四舍五入,保留两位小数
- ceil(num):向上取整
- floor(num):向下取整
- truncate(num, 2):从小数点后两位直接截断,比如truncate(3.1415926, 3) = 3.141
- mod(num, 2):求余数 num % 2
1.3 日期函数
- now():当前系统时间,1997-06-03 19:23:12
- curdate():当前系统时间的日期,1997-06-03
- curtime():当前系统时间的时间,19:23:12
- year():年份,1997
- month():月,6
- monthname():英文形式,June
- day():日, 3
- hour():小时, 19
- minute():分钟, 23
- second():秒, 12
- str_to_date(“1997-06-03 19:23:12”, "%Y-%m-%d %H:%i:%s):通过后面的模式将前面的字符串进行转换成date格式
- date_format(“1997/6/3”, “%Y年%m月%d日”):将日期转为字符,1997年6月3日
- datediff(date1, date2):

1.4 控制函数
if:类似于三元运算符

case:
第一种情况:类似于switch…case…


第二种情况:类似于多重if

1.5 其他函数
- version:版本
- database:当前数据库
- user:当前用户
二、分组函数
功能:用作统计使用,又称为聚合函数或统计函数或组函数。
分类:sum,avg,max,min,count
2.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;
select sum(salary) 和, avg(salary) 平均值, max(salary) 最大值, min(salary) 最小值, count(salary) 个数
from employees;
# 对平均值四舍五入保留两位小数
select sum(salary) 和, round(avg(salary), 2) 平均值, max(salary) 最大值, min(salary) 最小值, count(salary) 个数
from employees;
2.2 参数支持哪些类型
- sum、avg一般用于处理数值型(不报错,但没意义)
- max,min,count可以处理任何类型
2.3 是否忽略null值
sum,avg,max,min,count都忽略null值
2.4 和distinct搭配
select sum(distinct salary), sum(salary) from employees;
select count(distinct salary), count(salary) from employees;
2.5 count函数的详细介绍
select count(salary) from employees;
# 统计行数
select count(*) from employees; # 只要有一列不为null,行数便+1,不可能一行所有列同时为null(因为也不算数)
select count(1) from employees; # 原理是添加一列,该列所有行填充1,统计1的个数,也可以使用其他常量代替
效率:
- MyISAM:count(*)效率高
- InnoDB:count(*)和count(1)差不多,比count(字段名)要高一些
2.6 和分组函数一同查询的字段有限制
和分组函数一同查询的字段要求是group by后的字段
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
- js通过两种方式进行对商品价格排序
- julia系列6:并行计算
- 特殊变量 (SQL)
- Nacos配置中心用法详细介绍
- 软件技术功能开发思路
- Red and blue against experience sharing: CS from kill posture
- Gartner发布,年度Challenger!
- What is an APS system?What should I pay attention to when importing APS?Worth watching again and again
- 金仓数据库KingbaseES安全指南--6.11. PAM身份验证
- Locking and Concurrency Control (3)
猜你喜欢
随机推荐
In the idea to create a web project _idea deployment of the web project
链表| leecode刷题笔记
FPGA 20个例程篇:10.遍历DDR3内存颗粒读写循环校验
JZ42 连续子数组的最大和
Nacos面试题
接入网学习笔记
Nacos配置中心工作原理(超简单)
3.NVIDIA Deepstream开发指南中文版--Deepstream 环境配置
【C语言刷题】指针入门三题|字符串长度、字符串复制、两数交换
互联网刚需岗位 前景一片大好?
jar包应用的简单启停脚本
Locking and Concurrency Control (2)
CWE4.8:2022年危害最大的25种软件安全问题
融云「 IM 进阶实战高手课」系列直播上线
时间戳格式化「建议收藏」
navicat premium 15 下载安装详细教程
MYSQL下载及安装完整教程
每日练习------定义一个N*N二维数组,从键盘上输入值,找出每行中最大值组成一个一维数组并输出;
Arduino 硬件编程语言基础学习入门
金仓数据库KingbaseES安全指南--6.12. BSD身份验证









