Mysql函数

**

聚合函数:

**
USE test;
CREATE TABLE stu(
name VARCHAR(15),
gender VARCHAR(15),
age INT
);
INSERT INTO stu
VALUES
(‘lilei’,‘male’,17),
(‘lisi’,‘male’,19),
(‘laji’,‘male’,29),
(‘张三’,‘male’,15),
(‘马六’,‘famale’,16),
(‘赛文’,‘famale’,10);

– 返回指定字段的数据的平均值(?avg() 函数忽略列值为 NULL 的行,如果某行指定字段为null,那么不算这一行。)
SELECT avg(age) as ‘年龄平均值’ FROM stu
WHERE gender = ‘male’;

– count(字段函数):返回指定字段的数据的行数(记录的数量)
SELECT count(age) as “男生添了年龄的数量” FROM stu WHERE gender = ‘male’;
SELECT count(*) as ‘男生数’ FROM stu WHERE gender = ‘male’;

– max()函数:返回指定字段数据的最大值
SELECT MAX(age) AS ‘男生中最大的年龄’ FROM stu WHERE gender = ‘male’;

– min()函数:返回指定字段数据的最小值
SELECT MIN(age) AS ‘男生中最小的年龄’ FROM stu WHERE gender = ‘male’;

– sum()函数:返回指定字段数据之和
SELECT SUM(age) AS ‘男生年龄之和’ FROM stu WHERE gender = ‘male’;

– DISTINCT: 忽视同样的字段
SELECT AVG(DISTINCT age) AS ‘男生年龄平均值’ FROM stu WHERE gender = ‘male’;

– 求男生和女生的平均年龄,这里用用到分组:group by
SELECT gender ,AVG( age) FROM stu GROUP BY gender;

– 用group by 也可以达到去重的效果
SELECT AVG( t.age) FROM (
SELECT name ,gender ,age FROM stu
GROUP BY name,gender,age
) AS t;

基础函数方法:

– 用于处理字符串的函数
– 合并字符串函数:concat(str1,str2,str3…)
SELECT CONCAT(“wo”,“ai”,“zhongguo”);
SELECT CONCAT_WS(’ ',‘wo’,‘ai’,‘zhongguo’);
– 合并的字符串中有null,则变成null
SELECT CONCAT(‘wo’,‘ai’,NULL);

– 比较字符串大小函数:strcmp(str1,str2)
SELECT STRCMP(‘a’,‘a’);
SELECT STRCMP(‘a’,‘b’);
SELECT STRCMP(‘b’,‘a’);
SELECT STRCMP(‘aaabc’,‘aaabd’);

– 获取字符串字节数长度:length(str1)
SELECT LENGTH(‘中国我爱你’); – 一个汉字占三个字节
SELECT LENGTH(‘aaaaa’);

– 获取字符串字符数函数: CHAR_LENGTH(str)
SELECT CHAR_LENGTH(‘中国我爱你’);
SELECT CHAR_LENGTH(‘zhongguowoaini’);

– 字母大小写转换函数:upper(str)和ucase(str)转换为大写; LOWER(str)和lcase(str)转换为小写的
SELECT UPPER(‘ab’);
SELECT UCASE(‘ab’);
SELECT LOWER(‘AB’);
SELECT LCASE(‘AB’);

– FIND_IN_SET(str1,str2):返回字符串str1 在 字符串str2 中的位置
SELECT FIND_IN_SET(‘香港’,‘中国,包含,香港’);
– FIELD(str,str1,str2,str3,…):用法于上面相同,只不过变成了多个字符串
SELECT FIELD(‘中国’,‘香港’,‘是’,‘中国’,‘的’);

– LOCATE(str1,str2) :返回字符串str1在str2中的位置
SELECT LOCATE(‘中国’,‘香港是中国的’);
– POSITION(str1 IN str2):返回字符串str1在str2 中的位置
SELECT POSITION(‘中国’ IN ‘香港是中国的’);

– INSTR(str1,str2):返回 字符串str2 在str1 中的位置
SELECT INSTR(‘香港是中国的’,‘中国’);

– ELT(N,str1,str2,str3,…) 获取指定位置的子串
SELECT ELT(3,‘香港’,‘是’,‘中国的’);

– left(str,len): 截取str左边len个字符
SELECT left(‘abbcc’,3);
– right(str,n):截取str右边n个字符
SELECT right(‘abbcc’,3);
– SUBSTRING(str INDEX len):在str中的第index位置截取len个字符
SELECT SUBSTRING(‘abcdeff’,2,5);

– 字符串去空函数
– LTRIM(str):去除字符串str中左边的空格
SELECT LTRIM(’ aaa’);
– RTRIM(str): 去除字符串str中右边的空格
SELECT RTRIM('aaa ‘);
– trim(str):去除字符串str两端空格
SELECT TRIM(’ cc ');

– 字符串替换函数
– insert(str1,index,len,str2):将字符串str1中第index开始len个元素替换为str2
SELECT INSERT(‘abcdefg’,2,4,‘sss’);
– REPLACE(str,str1,str2):将str字符串中的str1全部替换为str2
SELECT REPLACE(‘aaabbbccc’,‘b’,‘a’);

– 用于处理数值的函数
– ABS(X):绝对值
SELECT ABS(-9);
– CEIL(X):向上取整函数
SELECT CEIL(4.2);
– FLOOR(X):向下取整函数
SELECT FLOOR(4.5);
– mod(n,m):取模
SELECT MOD(9,2);
– rand(x):随机数
SELECT Rand(1);
– round(x,y):y代表取小数点后几位
SELECT ROUND(3.1415926,4);
– TRUNCATE(X,y):返回数值x截取y位小数的结果(不四舍五入)
SELECT TRUNCATE(3.1223321,4);

– 用于处理时间日期的函数
– 获取当前日期 curdate(),current_date();
SELECT curdate();
SELECT current_date();

– 获取当前时间 curtime(),current_time();
SELECT curtime();
SELECT current_time();

– 获取当前日期时间 now();
SELECT now();

– 从日期中选择出月份数:month(date),monthname(date);
SELECT MONTH(curdate());
SELECT monthname(curdate());

– 从日期中选择出周数:week(date);
SELECT week(curdate());

– 从日期中选择出年数:year(date);
SELECT YEAR(curdate());

– 从时间中选择出小时数:hour(time);
SELECT HOUR(curtime());

– 从时间中选择出分钟数:minute(time);
SELECT MINUTE(curtime());

– 从时间中选择出今天是周几:weekday(date),dayname(date);
SELECT weekday(curdate());
SELECT dayname(curdate());

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值