掌握 MySQL 常用 SQL 語句是資料庫開發與管理的基礎。本文系統整理了從資料操作(DML)到資料查詢(DQL)的核心語法,並提供實戰範例,幫助開發者快速上手與查閱。
向指定資料表插入新記錄,可指定欄位或依預設順序填入值。
INSERT INTO 表名 (欄位1, 欄位2, ...) VALUES (值1, 值2, ...);
INSERT INTO product (name, price, pic_path) VALUES ('Nike', 500, 'uploads/3245.jpg');
修改現有記錄,務必搭配 WHERE 條件,否則將更新整張表。
UPDATE 表名 SET 欄位1=值1, 欄位2=值2 [WHERE 條件];
UPDATE product SET name='LiNing', price=50 WHERE id=2;
移除符合條件的記錄,同樣建議加上 WHERE 子句防止誤刪全表。
DELETE FROM 表名 [WHERE 條件];
DELETE FROM product WHERE id=2;
SELECT * FROM 表名;
SELECT * FROM product;
SELECT 欄位1, 欄位2 FROM 表名;
SELECT name, price FROM product;
-- 範例:多條件組合
SELECT * FROM product WHERE name='Nike' AND price=50;
SELECT * FROM product WHERE name='Nike' OR price > 50;
SELECT * FROM product WHERE id IN (2,3,4,10);
SELECT * FROM product WHERE name LIKE '%Li%';
SELECT * FROM orders WHERE created BETWEEN '2010-01-01' AND '2011-01-01';
預設遞增(ASC),可指定遞減(DESC)。
SELECT * FROM 表名 ORDER BY 欄位名 [ASC|DESC];
SELECT * FROM product ORDER BY created DESC;
分頁查詢核心語法:`LIMIT 偏移量, 筆數`(偏移量從 0 開始)。
SELECT * FROM product LIMIT 5; -- 前 5 筆
SELECT * FROM product LIMIT 2, 5; -- 跳過 2 筆,取 5 筆(第 3~7 筆)
| 函數 | 說明 | 範例 |
|---|---|---|
| COUNT() | 統計筆數 | SELECT COUNT(id) FROM student; |
| SUM() | 加總數值 | SELECT SUM(age) FROM student; |
| AVG() | 計算平均 | SELECT AVG(age) AS avg_age FROM student; |
| MAX() / MIN() | 最大/最小值 | SELECT MAX(age), MIN(age) FROM student; |
將一個 SELECT 陳述式嵌入另一個查詢中,常用於動態條件判斷。
-- 找出年齡低於平均的學生
SELECT name FROM student WHERE age < (SELECT AVG(age) FROM student);
-- 找出有訂單的商品
SELECT * FROM product WHERE id IN (SELECT id FROM orders);
多表關聯查詢,範例為內連接(INNER JOIN),僅回傳雙方皆符合條件的列。
SELECT s.username AS stu_name, t.name AS te_name
FROM student s
INNER JOIN teacher t ON s.teacher_id = t.id;
提示:實務上建議優先使用明確的 JOIN 語法(INNER/LEFT/RIGHT JOIN),而非舊式逗號分隔表名,可提升可讀性與最佳化空間。