mysql中select语句默认返回所有匹配的行,可能是指定表中的每一行,如果想要返回第一行或者前几行,可以使用lilit,通过分页查询实现。
-- 学生表中返回前5行 select * from student limit 5;
总结:带一个值的limit是从第一行开始,给出的数为返回的行数。带两个值的limit可以指定从行号为第一个值的位置开始。
聚合函数常用的聚合函数包括:count()、avg()、sum()、max()、min()
- count()函数统计表中包含记录行的总数,或者根据查询结果返回列中包含的数据行数;
- avg()通过计算返回的行数和每一列数据的总和来计算每个分组的平均值;
- sum()用来计算每个分组的总和;
- max()返回指定列中的最大值;
- min()返回指定列中的最小值
SQL注入的原理是将SQL代码伪装到输入参数中,传递到服务器解析并执行的一种攻击手段。也就是说,再对一些服务端发起的参数中植入一些SQL代码。服务端在执行SQL操作时会拼接对应参数,同时也将一些SQL注入攻击的“SQL”拼接起来,导致会执行一些预期之外的操作。
故需要严格检验参数和SQL预编译
- where是一个约束声明,来约束来自数据库的数据,在结果返回前起作用的,where中不能使用聚合函数
- having是一个过滤声明,是在查询结果返回后对查询结果进行过滤操作,可以使用聚合函数(having句子中不能使用除了分组字段和聚合函数之外的其他字段)
补充:having句子中如果使用了分组字段作为过滤条件应该替换成where,因为where可以在执行分组操作和计算聚合操作前过滤到不需要的数据,性能会更好。



