sql高级查询的学习

一、EXISTS子查询
语法:select …from 表名 where exists(子查询);
子查询有返回结果:
exists 子查询结果为true
子查询无返回结果:
exists 子查询结果为false
子查询注意事项:
任何允许使用表达式的地方都可以使用子查询
嵌套在父查询SELECT语句的子查询可包括
SELECT子句
FROM子句
WHERE子句
GROUP BY子句
HAVING子句
只出现在子查询中而没有出现在父查询中的列不能包含在输出列中
二、GROUP BY分组查询
语法:SELECT …… FROM <表名>
WHERE ……
GROUP BY ……
2、分组筛选
语法:SELECT …… FROM <表名>
WHERE ……
GROUP BY ……
HAVING……
三、where与having对比

WHERE子句
用来筛选 FROM 子句中指定的操作所产生的行
GROUP BY子句
用来分组 WHERE 子句的输出
HAVING子句
用来从分组的结果中筛选行
四、多表连接查询
1、内连接语句
语法:SELECT ……
FROM 表1,表2
WHERE ……
或SELECT ……
FROM 表1
INNER JOIN 表2
ON ……
2、左外连接
SELECT …
FROM … AS S
LEFT JOIN …AS R
ON s.列名 = R.列名;
3、右外连接
SELECT …
FROM … AS S
right JOIN …AS R
ON s.列名 = R.列名;
五、总结sql高级查询的学习