天天看点

【秋招】数据库编程必看指南

1. join和inner join的区别

join= inner join= cross join(都可以使用ON过滤)

left join=left outer join:左外连接

right join=right outer join:右外连接

full join=full outer join:全外连接(mysql不支持UNION代替)

natural join: 自然连接(不能使用ON)

2.join using用法

using()用于两张表的join查询,要求using()指定的列在两个表中均存在,并使用之用于join的条件。

示例:

select a.*, b.* from a left join b using(colA); 
// 等同于:
  select a.*, b.* from a left join b 
  on a.colA = b.colA;
           

3.窗口函数

https://blog.csdn.net/nmsLLCSDN/article/details/123287490

这篇写的很详细

常用的窗口函数:

【秋招】数据库编程必看指南

窗口函数的语法结构:

函数 OVER ([PARTITION BY 字段名 ORDER BY 字段名 ASC|DESC]) 
或者是 函数 OVER 窗口名 … WInDOW 窗口名 AS ([PARTITION BY 字段名 ORDER BY 字段名 ASC|DESC]) 
OVER 关键字指定窗口的范围;
           
  • 如果省略后面括号中的内容,则窗口会包含满足WHERE条件的所有记录,窗口函数会基于所有满足WHERE条件的记录进行计算。
  • 如果OVER关键字后面的括号不为空,则可以使用如下语法设置窗口。
  • PARTITION BY 子句: 指定窗口函数按照哪些字段进行分组, 分组后, 窗口函数可以在每个分组中分别执行;
  • ORDER BY 子句: 指定窗口函数按照哪些字段进行排序, 执行排序操作使窗口函数按照排序后的数据记录的顺序进行编号;
  • FRAME 子句: 为分区中的某个子集定义规则, 可以用来作为滑动窗口使用;