知识回顾
函数
1.可以理解为函数是Java中定义的方法(人家写好 我们自己描述)
2.函数不用对象来调用, 直接写函数名
3.函数可以含有参数, 0-n个都可以
4.函数必须有返回值
5.函数可以直接的放在SQL语句中调用(直接写函数名)
函数可以放在select后面, 当做一个显示内容
函数可以放在where后面, 当做条件
比较函数
ifnull();
数学函数(数值函数)—->Math
abs floor round mod pow
日期时间函数—->Date Calendar
now year(date) month day week
控制流程函数
if(表达式,1,2); 三目运算符 ifnull(值,v);
字符串函数—->String StringBuilder
length concat replace substr instr reverse
upper lower ltrim rtrim lpad rpad
分组函数
去重复 distinct
distinct 列 如果有一样的列信息 讲一样的信息合并
行数会减少 查询的没有一个列 行数个数需要一致
distince 如果有两个或两个以上的列, 那么它会把这两个列当做一个整体,
如果整体有一样的信息 则才会去重复 否则就全部显示
select distinct now() from student;
select now();
分组函数+分组条件
group by 列
如果SQL语句中一旦搭配了分组条件
能展示的信息只有两种
分组条件 分组函数
select classid, count(sid) from student group by classid;
select sage, count(sid) from student group by sage;
分组函数
count();数个数
max() min() avg() sum()
分组条件
group by 分组条件
如果SQL语句中一旦搭配了分组条件
能展示的信息只有两个
分组条件 分组函数
1.查询Student表格中每一个班级有多少个同学
select classid, count(sid) from student group by classid;
1.查询student表格中每一个班级有多少个同学
select sage, count(sid) from student group by sage;
2.查询student表格中每一个班级的语文平均分
select classid, avg(chinese) from student group by classid;
3.查询出平均分,并且排序
select classid, avg(chinese) from student group by classid order by avg(classid) desc;
4.查询student表格中所有的男同学
select classid, count(sid) from student where ssex = ‘nan’ group by classid;
5.查询student中那些有18岁的同学,在哪个班级
select classid, count(sid)from student where sage = 18 group by classid;
6.查询student 表格中语文平均成绩高于90分的班级
select classid, chinese from student group by chinese having svg(chinese)>90;
7.分组条件+ 分组函数的查询
1.在查询之前需要先考虑 到底是先分组 还是先筛选条件
先筛选 后分组 where group by
先分组 后筛选 group by having
————————————————————————————————————————————————-
嵌套
一个完整的SQL语句 嵌套了另外一个完整的SQL语句
1.查询student表格中语文成绩最高的人
select max(chinese)from student;
select *from student where chinese = (select max(chinese) from student);
select from (select sname, ssex, sage, classid from student) newTable;
select from (select sname, ssex, sage, classid from student) newTable where sage = 18;
2.查询在深圳班级上课的同学有哪些?
select * from student where classid = (select classid from myclass where classloc = ‘深圳’);
