核心 CRUD 語法速查
查詢 (SELECT)
-- 基礎查詢
SELECT * FROM table WHERE col = val ORDER BY col [DESC];
SELECT * FROM table WHERE col LIKE '%val%' ORDER BY col [DESC];
SELECT TOP 10 * FROM table WHERE col ORDER BY col [DESC];
SELECT * FROM table WHERE col IN ('v1','v2','v3');
SELECT * FROM table WHERE col BETWEEN v1 AND v2;
-- 多表/跨庫
SELECT * FROM db1.dbo.table1 t1, db2.dbo.table2 t2 WHERE t1.id = t2.id;
-- 統計函數
SELECT SUM(col) AS alias FROM table WHERE cond;
SELECT COUNT(*), AVG(col), MAX(col), MIN(col) FROM table;
新增 (INSERT)
-- 指定欄位
INSERT INTO table (col1, col2, col3) VALUES (v1, v2, v3);
-- 全欄位按順序
INSERT INTO table VALUES (v1, v2, v3);
-- 從另一表複製
INSERT INTO target_table SELECT * FROM source_table;
修改 (UPDATE)
UPDATE table SET col = val WHERE condition;
UPDATE table SET col1=v1, col2=v2, col3=v3 WHERE condition;
-- 無 WHERE 更新全表(危險!)
刪除 (DELETE)
DELETE FROM table WHERE condition;
DELETE FROM table; -- 清空全表(危險!建議用 TRUNCATE TABLE)
進階實用技巧
隨機抽樣
SELECT TOP N * FROM table ORDER BY NEWID();
建表與刪表
CREATE TABLE tab01 (name VARCHAR(50), dt DATETIME DEFAULT GETDATE());
DROP TABLE tab01;
記錄集操作 (ADO/ASP 經典)
| 方法 | 說明 |
| MoveNext / MovePrevious | 移動指標 |
| MoveFirst / MoveLast | 首/尾記錄 |
| AbsolutePosition = N | 跳到第 N 行 |
| PageSize = N / PageCount | 分頁屬性 |
| RecordCount | 總行數(需游標支援) |
| BOF / EOF | 超出首/尾標記 |
| AddNew / Update / Delete | 新增/修改/刪除當前行 |
LIKE 萬用字元對照
| 符號 | 含義 |
| % | 任意長度字串(含 0 字元) |
| _ | 單一字元 |
| [abc] | a/b/c 中任一字元 |
| [^abc] | 非 a/b/c 的任一字元 |
常見陷阱提醒
- UPDATE/DELETE 必加 WHERE,生產環境建議先跑 SELECT 驗證影響範圍
- 字串拼接 SQL 注入風險,務必用參數化查詢
- TRUNCATE TABLE 非交易、不觸發觸發器、重置身分種子,清空大表首選
- TOP N 配合 ORDER BY 才有確定意義,否則結果不可預期