首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 常用 SQL 語句完整指南:從基礎增刪改查到進階連接查詢

     編輯:MySQL 資料庫相關知識

MySQL 核心 SQL 操作全解析

掌握 MySQL 常用 SQL 語句是資料庫開發與管理的基礎。本文系統整理了從資料操作(DML)到資料查詢(DQL)的核心語法,並提供實戰範例,幫助開發者快速上手與查閱。

1. 新增資料(INSERT)

向指定資料表插入新記錄,可指定欄位或依預設順序填入值。

INSERT INTO 表名 (欄位1, 欄位2, ...) VALUES (值1, 值2, ...);
INSERT INTO product (name, price, pic_path) VALUES ('Nike', 500, 'uploads/3245.jpg');

2. 更新資料(UPDATE)

修改現有記錄,務必搭配 WHERE 條件,否則將更新整張表。

UPDATE 表名 SET 欄位1=值1, 欄位2=值2 [WHERE 條件];
UPDATE product SET name='LiNing', price=50 WHERE id=2;

3. 刪除資料(DELETE)

移除符合條件的記錄,同樣建議加上 WHERE 子句防止誤刪全表。

DELETE FROM 表名 [WHERE 條件];
DELETE FROM product WHERE id=2;

4. 查詢所有資料

SELECT * FROM 表名;
SELECT * FROM product;

5. 查詢指定欄位

SELECT 欄位1, 欄位2 FROM 表名;
SELECT name, price FROM product;

6. 條件查詢(WHERE 子句進階)

  • 比較運算子:`=`, `<`, `>`, `<=`, `>=`, `!=`
  • 邏輯運算子:`AND`(且)、`OR`(或)、`NOT`(非)
  • 範圍與集合:`IN` / `NOT IN`、`BETWEEN ... AND ...`
  • 模糊比對:`LIKE` 搭配 `%`(任意多字元)或 `_`(單一字元)
-- 範例:多條件組合
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';

7. 排序(ORDER BY)

預設遞增(ASC),可指定遞減(DESC)。

SELECT * FROM 表名 ORDER BY 欄位名 [ASC|DESC];
SELECT * FROM product ORDER BY created DESC;

8. 限制筆數(LIMIT)

分頁查詢核心語法:`LIMIT 偏移量, 筆數`(偏移量從 0 開始)。

SELECT * FROM product LIMIT 5;       -- 前 5 筆
SELECT * FROM product LIMIT 2, 5;    -- 跳過 2 筆,取 5 筆(第 3~7 筆)

9. 聚合函數

函數說明範例
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;

10. 子查詢

將一個 SELECT 陳述式嵌入另一個查詢中,常用於動態條件判斷。

-- 找出年齡低於平均的學生
SELECT name FROM student WHERE age < (SELECT AVG(age) FROM student);
-- 找出有訂單的商品
SELECT * FROM product WHERE id IN (SELECT id FROM orders);

11. 連接查詢(JOIN)

多表關聯查詢,範例為內連接(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),而非舊式逗號分隔表名,可提升可讀性與最佳化空間。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved