MySQL常见函数

MySQL常见函数

函数的功能:提升重用性和隐藏实现细节web

函数的调用:select 函数名(实参列表);sql

常见函数分类:单行函数,流程控制函数,分组函数数据库

注:通常SQL关键字大写数组

一.单行函数

1.字符函数
1.length() #获取参数值的字节个数
	eg.获取 oPlusman 的字节个数
	select length("oPlusman"); #返回字节个数8
	
2.concat 拼接字符串
	eg.拼接emps表姓与名,中间用‘_’分开
	select concat(last_name,'_',first_name) 姓名 from emps;

3.upper、lower#字母大写,小写
	eg.将姓变大写,名变小写,而后拼接
	select concat(upper(last_name),lower(first_name))  姓名 from emps;

4.substr截取指定字符
	substr('字符串''开始截取索引',’、['截取长度']);
	#注意:索引从1开始,与数组索引不一样
	eg.截取从指定索引处后面全部字符
	select substr('老鼠爱大米',4); #返回‘大米’
	eg.截取从指定索引处指定字符长度的字符
	select substr('老鼠爱大米,大米不爱老鼠',3,4); #爱大米,
5.instr 返回子串第一次出现的索引,若是找不到返回0
	#注意:索引从1开始,与数组索引不一样
	eg.
	select instr('老鼠爱大米','大米');#返回 4
6.trim 默认去左右空格,也能够指定
	eg.去除字符串左右空格
	select trim(' 小米 ');
	eg.去除指定左右相同字符
	select trim('aa' from 'aaaaaaaaaaa大米aaaa大米aaaa'); #返回a大米aaaa大米 由于是从左右去除 ‘aa’ 左右a的个数为单数
7.lpad 【左】 rpad 【右】 用指定的字符实现左右填充指定长度
	eg.中间参数表示显示的字符个数
	select lpad('老鼠',12,'*');
8.replace 替换
	eg. 大米所有替换成小米
	select replace('老鼠爱大米,老鼠爱大米老鼠爱大米','大米','小米');
2.数学函数
1.round 四舍五入
	SELECT ROUND(-1.55);
	SELECT ROUND(1.567,2);
2.ceil 向上取整,返回>=该参数的最小整数
3.floor 向下取整,返回<=该参数的最大整数
4.truncate 截断
	eg.参数2为截取小数点后几位
	SELECT TRUNCATE(1.69999,1); #返回1.6
5.mod取余
3.日期函数
1.now 返回当前系统日期+时间
	SELECT NOW();
2.curdate 返回当前系统日期,不包含时间
	SELECT CURDATE();
3.curtime 返回当前时间,不包含日期
	SELECT CURTIME();
4.能够获取指定的部分,年、月、日、小时、分钟、秒
	SELECT YEAR(NOW());
	SELECT MONTH(NOW());
	SELECT MONTHNAME(NOW()); #返回英语月份
	SELECT hour(NOW()) 小时;
	SELECT minute(NOW()) 分钟;
	SELECT second(NOW());
5.str_to_date 将字符经过指定的格式转换成日期 
	SELECT STR_TO_DATE(now(),'%Y-%c-%d');
6.date_format 将日期转换成字符
	SELECT DATE_FORMAT(NOW(),'%y年%m月%d日');

注:格式服务器

序号 格式符 功能
1 %Y 四位的年份
2 %y 2位的年份
3 %m 月份(01,02…11,12)
4 %c 月份(1,2,…11,12)
5 %d 日(01,02,…)
6 %H 小时(24小时制)
7 %h 小时(12小时制)
8 %i 分钟(00,01…59)
9 %s 秒(00,01,…59)
4.其余函数
version 当前数据库服务器的版本
database 当前打开的数据库
user当前用户
password('字符'):返回该字符的密码形式
md5('字符'):返回该字符的md5加密形式
5.流程控制函数
case函数的使用一 switch case 的效果
	case 要判断的字段或表达式
	when 常量1 then 要显示的值1或语句1;
	when 常量2 then 要显示的值2或语句2;
	...
	else 要显示的值n或语句n;
	end
case 函数的使用二:相似于 多重if
	case 
	when 条件1 then 要显示的值1或语句1
	when 条件2 then 要显示的值2或语句2
	。。。
	else 要显示的值n或语句n
	end

二.分组函数

特色:svg

1.语法 select max(字段) from 表名;函数

2.支持的类型加密

​ sum和avg通常用于处理数值型
max、min、count能够处理任何数据类型spa

3.如下分组函数都忽略nullcode

4.均可以搭配distinct使用,实现去重的统计

5.和分组函数一同查询的字段,要求是group by后出现的字段

max 最大值
min 最小值
sum 和
avg 平均值
count 计算个数
附加:
	count(1):统计结果集的行数
	count(*):统计结果集的行数
	效率上:
	MyISAM存储引擎,count(*)最高
	InnoDB存储引擎,count(*)count(1)效率>count(字段)