mysql 学习笔记(一)
标签:聚合函数
常用的汇总函数有:
- count(*或字段):按记录或字段统计记录数。
- sum(字段):对字段求和。
- max(字段):求字段最大值。
- min(字段):求字段最小值。
- avg(字段):求字段的平均值。
例如:
- select stu_grade ‘年级’,
- count(*) as ‘记录数’,
- max(stu_score) ‘最高分’,
- min(stu_score) ‘高低分’,
- avg(stu_score) ‘平均分’
- from stu_info group by stu_grade;
-- 按照年级、班级分类汇总,并按最高分降序排序
selectstu_grade ‘年级’,stu_class ‘班级’,count(*) as ‘记录数’, max(stu_fee) ‘最高分’, min(stu_fee) ‘高低分’, avg(stu_fee) ‘平均分’from stu_infogroup by stu_grade,stu_class order by ‘最高分’ desc;
注意:
1、select后只能是汇总的字段或者是聚合函数。查询之后,组 成新的字段。
2、order by 后的字段不是原表的字段,是别名。-- count 来统 计数据数
-- having一般group by组合来使用,表示在得到分类汇总记录的基础之上,进一步筛选 记录。
例如:
select stu_grade ‘年级’, count(*) as ‘记录数’, max(stu_score) 最高分, min(stu_score) ‘高低分’, avg(stu_score) ‘平均分’from stu_infogroup by stu_gradehaving max(stu_score) > 20;
各种常用函数查询
- 版本和用户名的查询
SELECT VERSION(), NOW();<--查看MySQL的版本,当前时间。-->SELECT user();
- 运算处理
- [x] 比较运算符
- [ ] =
- [ ] <>
- [ ] >
- [ ] >=
- [ ] IS NULL
- [ ] IS NOT NULL
select * from stu_info where stu_sex is null;
- [ ] ASCII(str) 返回字符串 str 最左边的那个字符的 ASCII 码值。 select ascii(‘你’);
- [ ] CONV(N,from_base,to_base) 将数字N实现不同进制间转换,返回字符串。 select conv(11,2,10);
- [ ] select conv('ff',16,10); 将二进制的11,转为10进制,结果为字符3。
- [ ] CONCAT(str1,str2,...) 将参数连接成字符串返回。 select concat(23,23); select concat(‘23’,‘你好’);
- [ ] LENGTH(str) 返回一个字符串的长度。
- [ ] LOCATE(small,big) INSTR(big,small) 返回一个small在big中的出现位置。 select LOCATE('ab','ddabcdef');
- [ ] DATE_ADD(date,INTERVAL expr type)对日期进行加减运算。
mysql> SELECT DATE_ADD("1997-12-31 23:59:59", INTERVAL 1 SECOND);-> 1998-01-01 00:00:00mysql> SELECT DATE_ADD("1997-12-31 23:59:59", INTERVAL 1 DAY);-> 1998-01-01 23:59:59
- [ ] DATE_FORMAT(date,format) 格式化日期函数。
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s');-> '22:23:00'
DATE_FORMAT(‘2008-12-12 02:12:09’,'%y-%m-%d %H:%i:%s‘);
- [ ] FROM_UNIXTIME(unix_timestamp [,format]) 将unix下的时间戳变成时间格式。 以 ‘YYYY-MM-DD HH:MM:SS’ 或 YYYYMMDDHHMMSS 格式返回一个 unix_timestamp 参数值 ,返回值的形式取决于该函数使用于字符串还是数字语境。 如果 format 给出,返回值依 format 字 符串被格式。format 可以包含与from_unixtime(dateline);