limit以及distinct的用法
用于过滤记录,过滤掉集中重复的记录,格式为:
distinct 字段名
使用select语句时,经常需要返回前几条或者中间某几条记录,可以使用微词关键字limit实现,格式为:
select 字段列表
from 数据源
limit [start,]length;
内连接、外连接
内连接将两个表中满足指定连接条件的记录连接成新的结果集,并舍弃所有不满足连接条件的记录。格式为:
from 表1 [inner] join 表2 on 表1和表2的连接条件
外连接分为左连接、右连接和完全连接。外连接的连接条件只过滤一个表,对另一个表不进行过滤(所有记录出现在结果集中)。若表2没有满足连接条件的记录,则结果集中表2相应的字段填入null。
MySQL中常用的聚合函数
1、count()返回某列的行數
2、avg()返回某列的平均值
3、max()返回某列的最大值
4、min()返回某列的最小值
5、sum()返回某列的和
6、distinct 去除重複值
avg()忽略值為null的行
count(*)時統計所有行,count(列)時忽略為null的行
Having与where的区别
having用于设置分组或聚合函数的过滤筛选条件,通常与group by一起使用。
当既有where又有group by、having时,首先由where子句进行过滤筛选,接着是group对输出分组,最好having再从分组结果中筛选。
相关子查询与非相关子查询
子查询中仅仅使用自己定义的数据源,这种查询是非相关子查询。独立于外部查询的子查询,子查询总共执行一次。
如果子查询中使用了主查询的数据源,那么是相关子查询,此时主查询的执行依赖于相关子查询的执行。