mysql函数的概念
相当于java中的方法,将一组逻辑语句封装在方法体中,对外暴露方法名
-
隐藏了实现细节
-
提高代码的可重用性
mysql函数的用法
select 函数名(实参列表)【from 表】 【】中内容可省略
具体用法分析
字符函数:
- length:获取字节个数(utf-8 一个汉字为3个字节,gbk为2个字节)
SELECT LENGTH('yepk.cn'); # 输出 7
SELECT LENGTH('叶子来啦'); # 输出12
- concat:拼接字符串
SELECT CONCAT('叶子','_','来啦'); # 输出 叶子_来啦
- upper:将字母变成大写
SELECT UPPER('yepk.cn'); # 输出 YEPK.CN
- lower:将字母变成小写
SELECT LOWER('YEPK.CN'); # 输出 yepk.cn
- substr / substring:裁剪字符串
substr(str,pos) # str:要裁剪的字符串 , pos:要裁剪的长度
substr(str,pos,len) # str:要裁剪的字符串 , pos/len:从哪个位置开始裁剪几位
# substring同理
- instr:返回子串第一次出现的索引,如果没有则返回0
SELECT INSTR('叶子来啦','来') # 输出 3 (mysql是从1开始算位数)
- trim:字符串两边去【字符】
SELECT TRIM( ' abcd ' );# 输出 abcd
SELECT TRIM( 'b' FROM 'bbbwertdddbbb' );#输出 wertddd
- lpad:用指定字符实现左填充指定长度
SELECT LPAD('欢迎大家哈哈',10,'*'); # 输出 ****欢迎大家哈哈
- rpad:用指定字符实现右填充指定长度
SELECT RPAD('欢迎大家哈哈',10,'*'); # 输出 欢迎大家哈哈****
10 . replace 替换
SELECT REPLACE('叶子来啦的网站','网站','小窝'); # 输出 叶子来啦的小窝
数学函数:
- round:四舍五入
SELECT round(1.8); # 输出 2
SELECT round(1.3); # 输出 1
SELECT round(-1.8); # 输出 -2 该四舍五入计算方式为:绝对值四舍五入加负号
SELECT round(-1.3); # 输出 -1 该四舍五入计算方式为:绝对值四舍五入加负号
- ceil:向上取整,返回>=该参数的最小整数
SELECT CEIL(1.8); # 输出 2
SELECT CEIL(1.2); # 输出 2
SELECT CEIL(-1.8); # 输出 -1
SELECT CEIL(-1.2); # 输出 -1
- floor:向下取整,返回<=该参数的最大整数
SELECT FLOOR(1.8); # 输出 1
SELECT FLOOR(1.2); # 输出 1
SELECT FLOOR(-1.8); # 输出 -2
SELECT FLOOR(-1.2); # 输出 -2
- truncate:数字小数位截断
SELECT TRUNCATE(12345678.12345678,2); # 输出 12345678.12
- mod:取余
SELECT MOD(10,3); # 输出 1
SELECT MOD(10,-3); # 输出 1
日期函数
- now:返回当前系统日期+时间
SELECT NOW() # 输出 2020-07-08 11:09:10
- curdate:返回当前系统日期,不包含时间
SELECT CURDATE() # 输出 2020-07-08
- curtime:返回当前时间,不包含日期
SELECT CURTIME() # 输出 11:10:18
- year/month/day 可以获取指定的部分,年、月、日、小时、分钟、秒
SELECT YEAR(NOW()); # 输出 2020
SELECT MONTH(NOW()); # 输出 7
SELECT DAY(NOW()); # 输出 8
- str_to_date:将字符通过指定的格式转换成日期
SELECT STR_TO_DATE('07-08 2020','%c-%d %Y') # 输出 2020-07-08
- date_format:将日期转换成字符
SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %h:%i:%s') # 输出 2020-07-08 11:13:49
- datediff:两个日期天数之差
SELECT DATEDIFF(NOW(),'1994-03-23') # 输出 9604
其他函数
- VERSION:查看mysql 版本
SELECT VERSION(); # 输出 8.0.11
- DATABASE:查看当前数据库
SELECT DATABASE() # 输出 ysmhcd
- USER:查看当前用户
SELECT USER() # 输出 root@localhost
流程控制函数
- if 函数:类似三目运算
SELECT IF(100<58,'大','小') # 输出 小
- switch case 的效果 也类似于多重if
case 要判断的字段或表达式
when 常量1 then 要显示的值1或语句1;
when 常量2 then 要显示的值2或语句2;
...
else 要显示的值n或语句n;
end
上面这些基本函数 建议掌握。。。。