[SQL]常用語法彙整: 基本運算 [SQL-002]

ChunJen Wang
jimmy-wang
Published in
5 min readMay 5, 2021

本篇整理學到的SQL語法,為簡單難度。
上一篇則有入門指令,包含如何選取欄位、表格、排序、更新。

SQL運算指令

  • min, Max
  • Count, Avg, Sum
  • Like, Wildcards
  • In, Between
  • Aliases
  • Group by
  • Having
  • Exists
  • Any, All

Min & Max

針對特定欄位,尋找最小/大值。回傳一個數值。

SELECT MIN(column_name) #MAX(column_name)
FROM table_name
WHERE condition;

Count & AVG & SUM

針對特定欄位,計算個數/平均/加總。回傳一個數值。

SELECT COUNT(column_name) #SELECT AVG(column_name) 
                #SELECT SUM(column_name)
FROM table_name
WHERE condition;

Like

使用在Where條件中,可以進行文字的模糊搜尋。

  • 百分比符號 (%) 代表有/沒有字。
  • 底線符號 (_) 代表有一個字。
SELECT column1, column2, …
FROM table_name
WHERE columnN LIKE pattern;

Like 範例:

Source: https://www.w3schools.com/sql/sql_like.asp

Wildcards

特殊符號在SQL中的運用。

在Google, excel vlookup我們都曾經用特殊符號來協助我們進行不同條件的搜尋,試想這裡只是改成SQL的特殊符號。

Source: https://www.w3schools.com/sql/sql_wildcards.asp
Source: https://www.w3schools.com/sql/sql_wildcards.asp

IN

文字敘述的判斷條件,IN (台灣),也可以用NOT進行條件排除。

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1, …); #IN (SELECT STATEMENT);

Between

數字/文字條件判斷,需要設定上下界。也可以加NOT進行條件排除。

SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2; #介於v1~v2,含等於

Alias

將選取/運算後的結果,進行欄位的別名命名。
或將表格進行名字縮寫,讓其在後面下條件時,可以用縮寫代表。

#用法一
SELECT column_name AS alias_name
FROM table_name;
#用法二
SELECT column_name
FROM table_name AS alias_name;

第二種用法相當於python 的 import numpy as np
執行過後,後面的程式就可以用 np. ,直接呼叫numpy中類別(Class)。

Group By

可以將運算過程,依據群組進行運算

MIN/MAX/COUNT/AVG/SUM等運算,
都可以透過群組分群進行運算。

SELECT column_name(s)
FROM table_name
GROUP BY column_name(s);

Having

一樣是根據條件運算,與Where最大差異是,Having可以針對聚合後資料下條件,再進行運算。兩者也可以同時使用。

Source: 自製
SELECT column_name(s)
FROM table_name
WHERE condition #可與HAVING並存
GROUP BY column_name(s)
HAVING condition
ORDER BY column_name(s); #可省略

EXISTS

用來確認是否有資料存在,若有才會進行運算。

SELECT column_name(s)
FROM table_name
WHERE EXISTS
(SELECT column_name FROM table_name WHERE condition);

ANY/SOME

回傳布林值(boolean),若有任一值為True,則進行條件subquery。

ALL

回傳布林值(boolean),若全部符合為True,則進行條件subquery。
搭配 SELECT, WHERE ,HAVING 一起使用。

SELECT ALL column_name(s)
FROM table_name
WHERE condition;

以上彙整了目前學到的SQL常見運算指令,
下篇再整理SQL 集合運算指令 (JOIN)。

感謝收看~

--

--

ChunJen Wang
jimmy-wang

嗨,歡迎你的到來,我目前在銀行擔任DS。過去曾做過銀行大型專案BA,也曾在轉職科技業DE中踢了鐵板,相信每一個人都有自己要走的路,而努力的過程,可以讓我們離心中理想更接近,如果我的文章能帶給你一些啟發與幫助,別忘了幫我在文章底下按下拍手~^^