1.having和where的有哪些区别:
where是分组前筛选,having是分组后筛选
分组:group by
2.as别名的用法:
as别名不能用在where和having处
可以在order by 里用
3.distinct、group by、rank()over()的区别:
disctinct:删除重复的行,数据被删除
group by:分组后数据是折叠的形式;适用于分组后统计
rank()over():分组后保留了原来的数据,不对数据进行任何操作,仅仅按照分组排列;适用于分组后排名
4.SQL全称和数据库
SQL全称:Structured Query Language (结构化查询语言)
数据库:SQLite、MYSQL、Postgres、Oracle、Microsoft SQL Server等等
5.内连接、左连接、右连接傻傻分不清,到底用哪一个联表才合适。关键就是记住一点,你要留下哪些数据
table1联table2
留下两个表共有的数据:table1 inner join table2(内连接)
留下table1所有的数据:table1 left join table2(左连接)
留下table2所有的数据:table1 right join table2(右连接)
6.完整的SQL查询语句
select col
from table join another_table on table.col=another_table.col
where constraint_expression
group by col
having constraint_expression
order by col ASC/DESC
limit count offset count;
注意:查询语句的顺序不能变,不然会出错