1.聚合查询
MySql中提供了内置的'函数',可以帮助计算目标行数,平均值等。
查询student表中的记录数。
SELECT COUNT(*) FROM student;
除count()外还提供了其他聚合函数。
2.分组查询
分组查询的原理:先对数据进行分组,在对分组后的数据进行汇总,分组查询通常用于配合聚合函数,达到分类汇总统计信息的目的。而分类汇总的本质实际上就是先将数组进行分组,分组后相同类别的信息会聚在一起,然后通过需求进行计算。
查询各个班的男生的平均身高
SELECT avg(age) num FROM student GROUP BY class_num;
查询各个班的人数
SELECT count(*) FROM student GROUP BY class_num;
3.多表查询
SELECT查询不但可以从一张表查询数据,还可以从多张表同时查询数据。查询多张表的语法是:
SELECT * FROM <表1> <表2>;
同时查询student,和sc两张表
SELECT * FROM student,scoure;
查询多个表中的特定列,比如student表当中的name和age,以及source表当中的cno列。
SELECT s.NAME, s.age, c.cno FROM student s, scoure c;
4.嵌套查询
一般在子查询中,程序先运行在嵌套在最内层的语句,再运行外层。因此在写子查询语句时,可以先测试下内层的子查询语句是否输出了想要的内容,再一层层往外测试,增加子查询正确率。否则多层的嵌套使语句可读性很低。
嵌套查询最侧产生的是一个新的表
找到所有选选择课程号为 数学 的同学的名称
SELECT t2.name FROM
(select t1.name,scoure.gradeName from
(SELECT student.name,relationship.cno FROM student
INNER JOIN relationship on student.sno = relationship.sno) t1
INNER JOIN scoure on t1.cno = scoure.cno) t2
where gradeName = '数学';