常见函数
概念:
类似于java的方法,将一组逻辑语句封装在方法体中,对外暴露方法名。优点隐藏了实现细节;提高代码的重用性。
调用:
select 函数名(实参列表) [FROM 表]
特点:叫什么(函数名),干什么(函数功能)
分类:
1、单行函数:length、ifnull等
2、分组函数:
功能:做统计使用,又称为统计函数、聚合函数、组函数。
字符函数:
1、length:获取参数值的字节个数
查看张三丰hahaha的长度
SELECT LENGTH('张三丰hahaha');//15(utf8汉字占3个字节,字母占1个字节;jdk汉字占2个字节)
2、concat:拼接字符串
用_拼接员工的姓和名
SELECT CONCAT (last_name,'_',first_name) FROM employees;
将姓变大写,名变小写然后拼接
SELECT CONCAT (UPPER(last_name),'_',LOWER(first_name)) AS 姓名 FROM employees;
姓名中首字母大写,其他字符小写然后用_拼接起来
SELECT CONCAT (UPPER(CONCAT(last_name,1,1)),'_',LOWER(CONCAT(first_name,2))) AS 姓名 FROM employees;
3、upper:字母 小写变大写
SELECT UPPER('john');//JOHN
4、lower:字母 大写变小写
SELECT LOWER('JOHN');//john
5、substr/substring:截取,索引从1开始
I、截取从指定索引处后面所有字符
SELECT SUBSTR('李莫愁爱上了陆展元',7);//陆展元
II、截取从指定索引处指定字符长度的字符
SELECT SUBSTR('李莫愁爱上了陆展元',1,3);//李莫愁
6、instr:返回字符串第一次出现的索引,如果找不到则返回0.
SELECT INSTR ('杨不悔爱上了殷六侠','殷六侠');
7、trim:去掉前后指定字符串
SELECT TRIM('a' FROM 'aaaaa张aa翠aaaa山aaaa');//张aa翠aaaa山
SELECT TRIM('aa' FROM 'aaaaa张aa翠aaaa山aaaa');//a张aa翠aaaa山
8、lpad:用指定的字符实现左填充指定长度,,长度不够则截断
SELECT LPAD('殷素素',6,'');//*殷素素
SELECT LPAD('殷素素',2,'');//殷素
9、rpad:用指定的字符实现左填充指定长度,,长度不够则截断
SELECT RPAD('殷素素',6,'');//殷素素**
10、replace:替换
SELECT REPLACE ('周芷若周芷若爱上了张无忌','周芷若','赵敏');//赵敏赵敏爱上了张无忌
查看客服端(character_set_Client)字符集
SHOW VARIABLES LIKE '%char%';
数学函数
1、round :四色五入
SELECT ROUND(-1.55);//-2
SELECT ROUND(-1.567,2);//-1.57
2、ceil :向上取整,返回>=改参数的最小整数
SELECT CEIL(1.002);//2
SELECT CEIL(-1.002);//-1
3、floor :向下取整,返回<=改参数的最小整数
SELECT FLOOR(1.002);//1
SELECT FLOOR(-1.002);//-2
4、truncate :截断
SELECT TRUNCATE(1.699,1);//1.6
5、mod :取余 ,符号正反与被除数有关
mod(a,b):a-a/bb
mod(-10,-3):-10-(-10)/(-3)(-3)=-10-3*(-3)=-10+9=-1
SELECT MOD(10,3);//1
SELECT MOD(10,-3);//1
SELECT MOD(-10,3);//-1
SELECT MOD(-10,-3);//-1
日期函数
1、now:返回当前系统日期+时间
SELECT NOW();//2024-04-06 19:30:00
2、curdate:返回当前系统日期,不包含时间
SELECT CURDATE();//2024-04-06
3、curtime:返回当前时间,不包含日期
SELECT CURTIME();//19:30:00
4、获取指定的部分,年、月、日day、小时hour、分钟minute、秒second
SELECT YEAR(NOW()) 年;
SELECT MONTH((NOW()) 月;//4
SELECT MONTHNAME((NOW()) 英文月;//April
5、str_to_date:将日期格式的字符 转换成 指定格式的日期
SELECT STR_TO_DATE('9-13-1999','%m-%d-%Y);//1999-09-13
SELECT STR_TO_DATE('13-1999 9','%d-%Y %m);//1999-09-13
6、date_format: 将日期 转换成 字符
SELECT DATE_FORMAT(NOW(),'%y年%m月%d日');//24年04月06日
查询有奖金的员工名和入职日期(xx月/xx日 xx年)
SELECT last_name,DATE_FORMAT(hiredate,'%m月/%d日 %y年) 入职日期 FROM employees where commission_pct is not null;
其他函数
SELECT VERSION();//查看版本号
SELECT DATEBASE();//查看当前数据库
SELECT USER():查看当前用户