*重要注意点:
1.查询列的时候,会投影与分组,聚合函数有关的列。
2.where 后面不能加聚合函数,只能是实际存在的列,数据。
3.my sql 执行语句顺序
FROM
WHERE
GROUP BY
SELECT
HAVING
ORDER BY
第七章.组合查询.总结
*使用子查询
1.嵌套在其他查询中的查询,称为子查询。
注意:
num1.子查询可以有多个,也可在子查询中继续使用子查询;也可在主查询中使用多个子查询
num2.在完整的sql结构语句中能嵌套子查询的位置有:
FROM,WHERE,GROUP BY,SELECT,HAVING,ORDER BY.
num3.自连接需要别名。
自连接即主查询和子查询的表是一样的。
2.子查询也称为内部查询,而包含子查询的语句也称为外部查询。
3.所有的子查询可以被分为两个类别:
num1.相关子查询(执行多次):相关子查询的执行依赖于外部查询的数据。外部查询返回一次,子查询就执行 一次。
num2.非相关子查询(只执行一次):非相关子查询是独立于外部查询的子查询。子查询总共执行一次,执行完 毕后将值传递给外部查询。
4.举例:
1.查询列的时候,会投影与分组,聚合函数有关的列。
2.where 后面不能加聚合函数,只能是实际存在的列,数据。
3.my sql 执行语句顺序
FROM
WHERE
GROUP BY
SELECT
HAVING
ORDER BY
第七章.组合查询.总结
*使用子查询
1.嵌套在其他查询中的查询,称为子查询。
注意:
num1.子查询可以有多个,也可在子查询中继续使用子查询;也可在主查询中使用多个子查询
num2.在完整的sql结构语句中能嵌套子查询的位置有:
FROM,WHERE,GROUP BY,SELECT,HAVING,ORDER BY.
num3.自连接需要别名。
自连接即主查询和子查询的表是一样的。
2.子查询也称为内部查询,而包含子查询的语句也称为外部查询。
3.所有的子查询可以被分为两个类别:
num1.相关子查询(执行多次):相关子查询的执行依赖于外部查询的数据。外部查询返回一次,子查询就执行 一次。
num2.非相关子查询(只执行一次):非相关子查询是独立于外部查询的子查询。子查询总共执行一次,执行完 毕后将值传递给外部查询。
4.举例:
SELECT columnA,(子查询) AS columnB FROM 表名;
注意:<>和^=都表示为!=(不等于)。
5.非相关子查询比相关子查询效率更高,但一旦用了子查询,就会降低整个运行效率。
6.如果子查询和外部查询使用的是一个表,而且里外需要用到同一个属性时,必须用到列别名。
7.嵌套在SELECT后面的子查询只能是单行单列。
8.在FROM后面接子查询必须要写一个新的列表别名,可以写多行多列。
9.SELECT columnA FROM tableA WHERE columnB =(子查询);
注意:不需要在子查询中的末尾加上分号,因为它实际上是一个外部查询语句的一部分。
10.返回多个结果的子查询 (IN)