天天看點

【秋招】資料庫程式設計必看指南

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 子句: 為分區中的某個子集定義規則, 可以用來作為滑動視窗使用;