相关查询:分组、排序、模糊、分页、连接、函数
查询关键字:select (查询) count(统计)sum(求和)max(最大值)min(最小值)avg(求平均数)
like (模糊查询) having(对分组进一步限制) in(相当于等于) group by(分组)order by(排序) between( x-y 之间) limit() join... on...(表连接)
语法:
查询语法结构:select 列名from 表名 where 条件 group by(分组) order by( 排序);模糊查询:列名 like 'xxx';(xxx表示不确定的信息 "%" 表示匹配任意个数的任意字符,“_” 表示匹配一个任意字符)
having :select * from 表名 group by (对什么分组) having (要筛选的东西)
in:select * from 表名 where name in('赵四',''王五'); (匹配name 是赵四的数据,相当于 name='赵四',name='王五')
order by: 排序 默认升序 升序:asc 降序:desc
between : select * from 表名where 列名 between 70 and 80;(表示70-80之间,相当于 列名>70 and 列名<80)
聚合函数:
Count(*) 统计记录条数 sum(studentresult)统计某一列累加总和,要求列中的数据是数值类型
Max()求最大值,min()求最小值 avg()求平均值
聚合函数的特点,针对数据进行统计,返回一个结果值。
排序:
排序方式有升序(asc)和降序(desc),默认情况下是升序。
/*查询所有学员信息按年级升序,再按生日降序*/
select * from student order by gid,birthday desc;
多条件排序原理是在按第一个条件排序后的基础上,再按第二个条件来排序。
分组:
分组就是结合聚合函数来对数据进行分组统计. 关键字:group by
根据分组的列把数据进行分组,然后再分别进行统计。
/*统计男女学员各有多少*/
select sex,count(*) from student group by sex
/*统计每个年级各有多少学员*/
select gid,count(*) from student group by gid;
/*统计每门科目的考试平均分*/
select subjectno,avg(studentresult) from result group by subjectno;
Having:在分组之后的结果中再一次进行数据的筛选。此关键字必须要结合分组来使用。
/*查询哪些学员在科目一参加了补考*/
selectstudentno, count(*) from result where subjectno = 1
group bystudentno having count(*)>1
模糊查询:
模糊查询就是指查询条件不确定的情况。
/*模糊查询
%: 0-N任意字符
_: 一个任意字符
[ ]:区间指定内的一个字符
*/
子查询:
子查询,括号里面的查询会先执行,取得一个结果作为外面查询的条件。
子查询语句可以出现在查询语句的任意地方函数:
字符串函数、数学函数、日期函数、聚合函数、系统函数