MySQL常见函数

MySQL常见函数

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

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

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

注:一般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%y2位的年份
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	

二.分组函数

特点:

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

2.支持的类型

​ sum和avg一般用于处理数值型
max、min、count可以处理任何数据类型

3.以下分组函数都忽略null

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

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

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值