[SQL]常用語法彙整: 基本運算 [SQL-002]
本篇整理學到的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 範例:
Wildcards
特殊符號在SQL中的運用。
在Google, excel vlookup我們都曾經用特殊符號來協助我們進行不同條件的搜尋,試想這裡只是改成SQL的特殊符號。
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可以針對聚合後資料下條件,再進行運算。兩者也可以同時使用。
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)。
感謝收看~