RUNWEBTOOLS
繁體中文

SQL 速查表

按任務分組的核心 SQL 陳述式,用於查詢和修改資料。確切語法在不同資料庫(PostgreSQL、MySQL、SQLite、SQL Server)間略有差異,但下面的基礎幾乎通用。要整理雜亂的查詢,用 SQL 格式化工具

更新 2026-07-06

查詢(SELECT)

陳述式作用
SELECT * FROM t回傳表 t 的每一欄每一列
SELECT a, b FROM t只回傳欄 a 和 b
SELECT DISTINCT a FROM t回傳 a 的唯一值
... WHERE a = 5過濾 a 等於 5 的列
... ORDER BY a DESC依 a 降序排序
... LIMIT 10最多回傳 10 列
... OFFSET 20跳過前 20 列(分頁)
SELECT COUNT(*) FROM t統計列數
SELECT SUM(a), AVG(a) FROM t彙總:a 的總和與平均
... GROUP BY category依類別分組以彙總
... HAVING COUNT(*) > 5過濾分組(用於彙總的 WHERE)

過濾(WHERE)

陳述式作用
WHERE a IN (1, 2, 3)比對清單中的任意值
WHERE a BETWEEN 1 AND 9比對一個範圍(含兩端)
WHERE name LIKE 'A%'模式比對:以 A 開頭(% = 任意字元)
WHERE name LIKE '_at'_ 恰好比對一個字元
WHERE a IS NULL比對 a 沒有值的列
WHERE a > 5 AND b < 10用 AND / OR 組合條件

連接資料表

陳述式作用
INNER JOIN u ON t.id = u.tid兩表都有相符的列
LEFT JOIN u ON t.id = u.tid左表的所有列(無論是否相符)
RIGHT JOIN u ON t.id = u.tid右表的所有列
FULL JOIN u ON t.id = u.tid兩表的所有列

修改資料

陳述式作用
INSERT INTO t (a, b) VALUES (1, 2)新增一列
UPDATE t SET a = 5 WHERE id = 1修改既有列(注意 WHERE!)
DELETE FROM t WHERE id = 1刪除列(注意 WHERE!)

結構(資料表與索引)

陳述式作用
CREATE TABLE t (id INT, name TEXT)建立一張新資料表
ALTER TABLE t ADD col TEXT新增一欄
DROP TABLE t刪除一張資料表及其所有資料
CREATE INDEX idx ON t (a)新增索引以加快對 a 的查找

值得保持的安全習慣:先寫 UPDATEDELETEWHERE 子句。不帶 WHERE 執行會修改或刪除表中的每一列。

相關工具