计数、求和、最小、最大等等集合函数查询

一、count()函数

select count(*) from city;

适用于统计这个列的总数,即excel里面的计数

二、sum()函数

指的是求和,会使用索引

三、avg()函数

指的是平均数

四、max()函数

指的是取出最大值,不会使用索引,会使用全表扫描

五、min()函数

指的是取出最小值,跟max一样,不会使用索引,会使用全表扫描

六、正则表达式查询——对要查询的数据结果进行模糊的描述

1、以特定字符开头   ^

select * from city where countrycode like 'CHN' and district regexp '^z';

查询countrycode里面字符串是CHN的数据,并且筛选出district里面Z开头的结果

2、以特定字符结尾   $

select * from city where countrycode like 'CHN' and district regexp 'g$';

查询countrycode里面字符串是CHN的数据,并且筛选出district里面以g结尾的结果

3、匹配任意单个字符   .

select countrycode from city where countrycode regexp 'c,n';

查找countrycode里面字符有“C*N‘的结果,CxN

4、匹配任意多个字符   *或者+  !!!!!!!!!

*表示零个或多个在它前面的字符

+表示它前面的字符一次或多次

select district from city where district regexp '^SH*'

and

countrycode like 'CHN';

http://study.163.com/course/courseLearn.htm?courseId=760014#/learn/video?lessonId=925165&courseId=760014 

18:00

*

匹配前面的字符0次或多次

a*rwen可以匹配rwen或aaarwen.

+

匹配前面的字符1次或多次

a+rwen可以匹配arwen或aarwen.但不能匹配rwen.

5、匹配指定字符串

与like效果一样,直接跟‘xxxx’

但是,可以用 | 表示或

select name ,district from city where district regexp 'shan|guang' and countrycode like 'CHN';

6、匹配指定字符串中的任意一个   [  ]

如果在[]里面加上^,表示非

select district from city where district regexp [sg] and country code like 'CHN' limit 10;

表示查询满足中国地区里,结果带有s或者g的

[^sg]表示不带s或者不带g

7、匹配指定字符串连续出现的次数 {  }

select district from city where name regexp 'h{1,2}'

表示h出现1到2次,1,2表示1到2

若写成{2,}表示2个及2个以上


【总结】

1、避免在生产环境使用select * ,选出你想查看的字段,并在select语句中清楚的写出来。

2、当表中数据量很大的时候,group by和order by语句会大大增加执行查询语句所消耗的资源。

3、当表中数据量很大的时候,慎用集合函数。

4、如果一条查询语句经常被执行,那么其中where子句涉及到的字段最好有索引。

你可能感兴趣的:(计数、求和、最小、最大等等集合函数查询)