MySQL复习(二)之 函数

参考 https://blog.csdn.net/Y12nre/article/details/101198825

字符串函数

函数 功能 注意点
CANCAT(S1,S2,…Sn) 连接S1,S2,…Sn 为一个字符串 连接的内容有个字段为空,则整个为空
concat_ws(separator, str1, str2, …) 和concat()一样,将多个字符串连接成一个字符串,但是可以一次性指定分隔符 select concat_ws(’-’,car_manage_no,car_manage_id) from t1 把分隔符指定为null,结果全部变成了null
group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator ‘分隔符’] ) 将group by产生的同一个分组中的值连接起来,返回一个字符串结果。 select warehouse_no, warehouse_name, group_concat(concat(plate_city_name,’-’,valid_time) order by valid_time desc) from fcm_warehouse_city_valid group by warehouse_no
INSERT(str,x,y,instr) 将字符串str 从第x 位置开始,y 个字符长的子串替换为字符串instr
LOWER(str) 将字符串str 中所有字符变为小写
UPPER(str) 将字符串str 中所有字符变为大写
LEFT(str ,x) 返回字符串str 最左边的x 个字符 如果第二个参数是NULL,那么将不返回任何字符串
RIGHT(str,x) 返回字符串str 最右边的x 个字符 如果第二个参数是NULL,那么将不返回任何字符串
LPAD(str,n ,pad) 用字符串pad 对str 最左边进行填充,直到长度为n 个字符长度
RPAD(str,n,pad) 用字符串pad 对str 最右边进行填充,直到长度为n 个字符长度
LTRIM(str) 去掉字符串str 左侧的空格
RTRIM(str) 去掉字符串str 行尾的空格
REPEAT(str,x) 返回str 重复x 次的结果
REPLACE(str,a,b) 用字符串b 替换字符串str 中所有出现的字符串a
STRCMP(s1,s2) 比较字符串s1和s2 :比较字符串s1 和s2 的ASCII 码值的大小。如果s1 比s2 小,那么返回-1;如果s1 与s2相等,那么返回0;如果s1 比s2 大,那么返回1
TRIM(str) 去掉字符串行尾和行头的空格
SUBSTRING(str,x,y) 返回从字符串str x 位置起y 个字符长度的字串

数值函数

函数 功能
ABS(x) 返回x 的绝对值
CEIL(x) 返回大于x 的最大整数值
FLOOR(x) 返回小于x 的最大整数值
MOD(x,y) 返回x/y 的模
RAND() 返回0 到1 内的随机值
TRUNCATE(x,y) 返回数字x 截断为y 位小数的结果
ROUND(x,y) 返回参数x 的四舍五入的有y 位小数的值

日期和时间函数

函数 功能
CURDATE() 返回当前日期
CURTIME() 返回当前时间
NOW() 返回当前的日期和时间
UNIX_TIMESTAMP(date) 返回日期date 的UNIX 时间戳
FROM_UNIXTIME 返回UNIX 时间戳的日期值
WEEK(date) 返回日期date 为一年中的第几周
YEAR(date) 返回日期date 的年份
HOUR(time) 返回time 的小时值
MINUTE(time) 返回time 的分钟值
MONTHNAME(date) 返回date 的月份名
DATE_FORMAT(date,fmt) 返回按字符串fmt 格式化日期date 值
DATE_ADD(date,INTERVAL expr type) 返回一个日期或时间值加上一个时间间隔的时间值 参考
DATEDIFF(expr,expr2) 返回起始时间expr 和结束时间expr2 之间的天数,eg:select now() current,date_add(now(),INTERVAL 31 day) after31days,date_add(now(),INTERVAL ‘1_2’ year_month) after_oneyear_twomonth;

其他函数

DATABASE() 返回当前数据库名
VERSION() 返回当前数据库版本
USER() 返回当前登录用户名
MD5() 返回字符串str 的MD5 值
show table status 查看表信息
show table status like ‘%表名%’
show index from 表名

例子

  1. 查询某年每个月的销量??
select count(*) '总销量',MONTH(date_create) from t_order where YEAR(date_create) = 2019 group by MONTH(date_create);

你可能感兴趣的:(Java)