SQL问题+知识点总结总
1、SQL中的内置函数有哪些?(Count、Sum、Avg、Max、Min)
2、SQL查询语句的执行顺序。(先执行from语句,再执行条件语句,最后执行Select 语句投影查询信息)
3、Having 和Where在SQL中的区别:having用于分组后的筛选,where 用于分组前的筛选。(能尽量在分组前进行筛选的尽量在分组前进行筛选)
4、需要注意的是Where条件语句中不能有聚合函数——课件案例中问题:“求人数大于2的系”中可以很好的体会这一点,并且由此可以引入Having的使用方法(先进行系分组,然后再判断系的人数是不是大于2——做题的思路)
5、口诀:分组必统计(还不理解)
6、SQL中否定不等于的表示方法为:<>
7、*****通过拆解问题,使用独立子查询(where)
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
8、Sql中连接查询,当查询涉及到两个或两个以上的表时需要使用连接查询。
连接查询有:
(
内连接(inner join)和按条件执行独立子查询是一样的
外连接:
(
左外连接:left join查询A表与B表中符合on条件的内容,如果左表中有不符合条件的行,则返回
右连接:right join 查询A表和B表中符合条件的内容,如果右表中有不符合条件的其他行,则返回
左边是A表,右边是B表
Select A.aNo,B.Score from A left join B on A.aNo = B.bNo
Select A.aNo,B.Score from A right join B on A.aNo = B.bNo
)
口诀:不管是left join 还是 right join 都是——from谁 谁就是左表
交叉连接:也称笛卡尔乘积,全映射
)
下图帮助理解:
9、查询的结果运算(并、交、差)
实列:左边表为A表,右表为B表
Select aNo from A union Select bNo from B
Select aNo from A union All Select bNo from B
对比以上union查询,理解union对查询结果的运算和union和union all的区别
10、exsist(存在)和excipt(排除)在Sql中的使用