SQL 函數
一些聚合函數(aggregate function)以及其他 PG 的功能
NULL
建立 table 時可以指定欄位是否必填,
如果設定了 NOT NULL,其他欄位建議也補上 NULL, 整體可讀性較一致。
-- 建立員工資料表CREATE TABLE users ( id SERIAL PRIMARY KEY, name VARCHAR(100) NOT NULL, email VARCHAR(100) NOT NULL, team_name VARCHAR(50) NULL, salary INTEGER NULL);COALESCE
可以使 NULL 的欄位輸出變成指定的值,
如撈到 salary 為 NULL 的時候,就顯示 '未設定':
SELECT id, name, email, COALESCE(team_name, '未分配部門') as team_name, COALESCE(salary, 0) as salaryFROM users;DISTINCT
在撈取時可以去除重複資料,類似 Set 物件:
SELECT DISTINCT team_nameFROM users;COUNT
SELECT COUNT(*) as 員工總數FROM users;AVG、SUM、MAX、MIN
SELECT AVG(salary) AS 平均薪資, SUM(salary) AS 總薪資, MAX(salary) AS 最高薪資, MIN(salary) AS 最低薪資FROM users;UUID
可以產生比純數字的 id 更具安全性的代號,代價是占用更多容量:
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
CREATE TABLE users ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(),);